3 ms·
I'm designing a programming language that has symbols that are namespaced to objects, where two symbols are equal iff the object they're linked to is the same a
by gvx 9y ago
I'm designing a programming language that has symbols that are namespaced to objects, where two symbols are equal iff the object they're linked to is the same and their string representation is the same.
In that language, the equivalent of :a == :a would be true, and you would use different "namespace objects" to prevent collisions.
For example, classes that implement the function interface could provide methods named call and partial, that are namespaced to the function class object, leaving you free to define methods with those names but different namespaces for completely different purposes.
- acjohnson55 9y agoWhy is that helpful? In JS, the way you accomplish the same thing is to assign the single instance of the symbol to a property in your module, and that's how you access it, rather than summoning it with the Symbol function. Not sure what the machinery you're suggesting buys you, but I could be missing something!
- gvx 9y agoI don't suppose it buys you anything JS can't do, but it does allow those things to be integrated closely in the language, in a way JS can't do without majorly breaking the language.