   Quick question abuot Scheme symbols
  After some googling (Pac-man is awesome), it seems that symbols are just pointers. Is that correct?   
  They're... umm... symbols. How the implementation works is, most likely, that there is a pointer to some constant string data, yes. The idea is that symbols can be compared for equality efficiently by comparing them for identity (due to interning), and their string representation is still available for comparison to strings (although this necessarily requires a full string comparison).   ;  Yes, .... they're symbols. But I'm having a hard time differentiating symbols from variable (in Scheme) because they both look like they do the same thing: Reference underlying data.I mean I can use symbols in the same way I can use variables and vice-versa, it seems.   ;  Symbols exist if you talk about them, even if you don't use them as references. A symbol doesn't necessarily have any value underlying it. And in Common Lisp, it may have two. (!)Think of variables in Scheme as a mapping from symbols to values. What makes a variable referred to by a given symbol exist is not the existence of that symbol, but the existence of a symbol/value tuple in that map. The symbol exists just because you have it in your program.You could even think of an alternate-reality scheme that used integers as symbols... so you'd do, say (set! 3 "foo"). 3 doesn't STORE the string, and it doesn't even really even refer to it, at least not in the sense of that being its innate nature. It's just an integer, the one that comes before four. But somewhere in memory there's a thing remembering that the number 3 and the string "foo" are associated with each other, and the various parts of your program have agreed that you will all use the number 3 to get access to whatever's stored there.Actually, I guess you'd do (5371 3 "foo").   