The Name of the Name
dherman at mozilla.com
Wed Aug 1 16:45:27 PDT 2012
On Aug 1, 2012, at 4:20 PM, Kevin Reid wrote:
> On Wed, Aug 1, 2012 at 3:56 PM, David Herman <dherman at mozilla.com> wrote:
>> In the Lisp world, strings and symbols are isomorphic, but there's a sense that symbols have identity where strings don't. Now, Lisp symbols are historically forgeable and interned, so this isn't exactly the same concept.
> In Common Lisp (which I am most familiar with, and I think is a
> relevant design), this is not right.
I'm always torn whether to say "the Scheme world" and risk upsetting Lispers that I didn't include them, and "the Lisp world" and risk upsetting Lispers that I spoke for them... Please just s/Lisp/Scheme/g on my email. :)
Sure, some Schemes have uninterned symbols as well.
> Uninterned symbols are used for unique generated names ("gensyms");
> interned symbols (those which exist in packages) are used for names
> written in source code. These essentially correspond to the use cases
> of the proposed unique-names and strings, respectively; CL's design
> gains orthogonality by having even "ordinary names" be symbols rather
> than strings, so the programmer need not have different code paths.
OK, so you're definitely talking way more specifically about Common Lisp. I was trying to generalize about languages in the Lisp tradition, and what they all have in common about the base concept of symbols. (And probably getting it wrong, since I know more about Scheme and Racket than I do about languages that call themselves Lisp.)
At any rate, the tradition of uninterned symbols is one more point in favor of using the terminology of symbols.
But let's not get derailed by details of other languages. Every language gets to choose its own terminology. No two languages are going to have the same exact definition of *any* term. My point is that I think there's enough overlap of intuition to make it a reasonable choice.
More information about the es-discuss