Subject: Re: Separation in function and value cells (was Re: newbie: please don't smash my case) From: Erik Naggum <firstname.lastname@example.org> Date: 2000/07/08 Newsgroups: comp.lang.lisp Message-ID: <email@example.com> * Simon Brooke <firstname.lastname@example.org> | I do think that treating functions as different from other data is | 'stupid', yes And just _how_ does Common Lisp do this? Having two different value slots for a symbol is not at all what you describe as stupid. If you are thinking about the need to use the `function' special form where (presumably) you would have been happier with regular variable access, that is _so_ not the issue. You can bind a variable to a function object any day and funcall it. Try, you may be shocked. If this is the old "I hate funcall" whine, please say so right away so I can ignore you completely. | it leads to all sorts of hacks and kludges and results in no | benefits that I am aware of. Really? Assuming that we still talk about symbol-function and symbol-value, the hysterical need for "hygienic" macros in Scheme is _not_ caused by their conflated namespaces? Come on, now. Why exaggerate your case when there is at lest one _obvious_ benefit (and one obvious drawback to the conflating namespaces, namely the Scheme experiment). The main human benefits are that you don't have to worry about name collisions when you define a lexical variable and that you don't have to look for all sorts of bindings when reading code. The main compiler benefit is that if you maintain control over what you stuff into the symbol-function slot, you don't have to test it for a function object every time you use it. | It is, in my opinion, historical baggage left over from | implementation details in LISP 1.5. And which "implementation details" are you referring to? | Furthermore, it's clear that many of the most influential people | in the design of Common LISP are now of the same opinion; for example, | Richard Gabriel's 1988 paper in _LISP & Symbolic Computation_ on just | this issue, or some of Scott Fahlman's posts on LISP2 and the design | of Dylan on this very group in February and March of 1995. Yeah, _sure_ I'll trust a _Dylan_ designer to have useful comments about Common Lisp. "I hate this, let's go make our _own_ language" people are so full of agendas both hidden and overt that you can't take anything they say about the old language seriously. | However, if you have a different opinion, please feel free to argue | it. What benefit is there, beyond having to invoke baroque syntax | to use a lambda expression, and having to do two operations instead | of one at every step in a structure walker? And what the fuck does lambda expressions have to do with symbol and value cells in symbols? All of trolling, stupid, and insane, that's my conclusion. | "The result is a language that... not even its mother could | love. Like the camel, Common Lisp is a horse designed by | committee. Camels do have their uses." | ;; Scott Fahlman, 7 March 1995 If you don't like Common Lisp, Simon, you don't have to suffer it. There are plenty of other languages out there you can use. Those who have hated parts of the language have gone elsewhere. Those who remain actually _like_ the language, even if this is unfathomable to you. It it also my firm opinion that computer professionals who use tools they dislike or hate _are_ insane at best. (Worse would be slavery, criminal incompetence, extremely low self-esteem and other results of prostitution, or extreme poverty, all of which remove one's ability to choose rationally among the _generally_ available options.) One simply does not choose to use something one hates for whatever reasons. That's why Scott Fahlman went to Dylan, I guess, but I know that's why I dropped working with SGML, C++, and Perl. #:Erik -- If this is not what you expected, please alter your expectations.