
Andrew Coppin
Brian Sniffen wrote:
On Dec 28, 2007 6:05 AM, Andrew Coppin
wrote: [I actually heard a number of people tell me that learning LISP would change my life forever because LISP has something called "macros". I tried to learn it, and disliked it greatly. It's too messy. And what the heck is "cdr" ment to mean anyway? To me, LISP doesn't even seem all that different from normal languages (modulo weird syntax). Now Haskell... that's FUN!]
Contents of Data Register.
Right. I've heard the story about why it came to be called that, but seriously... I can never remember whether I want cdr or car. It's a silly choice of name. [Sure, you can rename it. And then nobody but you will understand it.]
That's not even the end of the fun: You can freely switch around car and cdr, treating cdr as "element of head" and car as "tail", and try to put into words why that won't make a foldl out of a foldr. You can also never put any useful value into any cons and still have it represent something useful, or say caaaddaaadaddaddadadadaddar, at which point you're hopefully lost. It's probably called dadaism. Actually, if you read through the Wizard Book, at least half of the defined functions are defined solely in terms of list, car, cdar, cddar and so on. One might be tempted to claim that any sufficiently complicated scheme program contains an informally-specified, bug-ridden implementation of half of haskell's type system.