Another stab at why Symbols are special
This commit is contained in:
parent
04868a2309
commit
c6700c2f2b
|
@ -880,9 +880,11 @@ types.[^why-dictionaries]
|
|||
predicate to programmers, and so if a data type demands a special
|
||||
equivalence predicate, as `Dictionary`, `Set` and `Float` all do,
|
||||
then the type should be included in the base language. Otherwise,
|
||||
it can be represented as a `Record` and treated separately. Both
|
||||
`Boolean` and `String` are seeming exceptions: they merit
|
||||
inclusion because of their cultural importance.
|
||||
it can be represented as a `Record` and treated separately.
|
||||
`Boolean`, `String` and `Symbol` are seeming exceptions. The first
|
||||
two merit inclusion because of their cultural importance, while
|
||||
`Symbol`s are included to allow their use as `Record` labels.
|
||||
Primitive `Symbol` support avoids a bootstrapping issue.
|
||||
|
||||
All of these conventions are optional. They form a layer atop the core
|
||||
`Value` structure. Non-domain-specific tools do not in general need to
|
||||
|
|
Loading…
Reference in New Issue