4 ms·
> But "code is data" and "code is expressed as lists of lists" are not the same statement. And the difference matters. Except that when a Lisp programmer says
by nocman 9y ago
> But "code is data" and "code is expressed as lists of lists" are not the same statement. And the difference matters.
Except that when a Lisp programmer says "code is data" that's exactly what they mean. Lisp programs are lists of Lisp lists (say that 5 times fast xD). This gives Lisp code generation powers that leave any string-based code manipulation in the dust (I know you already know this).
I'm not against making the clarification, I just disagree with the statement "even the most casual reflection on what this slogan actually means will reveal that it can't possibly be the right answer.".
I realize that some may not understand what is meant when a Lisp programmer says "code is data", and it is worth explaining what they mean when they say it. I just disagree that that makes the expression invalid for Lisp programmers to use in that manner.
- lisper 9y ago> Lisp programs are lists of Lisp lists That's actually not true either. Here is a Lisp program: (defun true () t) It's a list of four elements, only one of which is a list. (You actually could define a language where all programs were lists of lists, and you could even make it Turing-complete. But it would be completely unusable because it would consist of nothing but parentheses!) Now, obviously I know you know this. And equally obviously I know that what you meant was different from what you actually said. But that's only because I already knew what you were trying to say. If you're trying to communicate with someone who doesn't already know what you're trying to say (and isn't that the whole point of communication?) then you have to actually say what you mean or you will fail.