3 ms·
Conclusion on the page: > Q: Is Homoiconic much ado about nothing ? A: Yes, after much wasted bandwidth on c2 this seems to be the only logical conclusion. I
by zvrba 12y ago
Conclusion on the page:
> Q: Is Homoiconic much ado about nothing ? A: Yes, after much wasted bandwidth on c2 this seems to be the only logical conclusion.
I would add my $.02 to the discussion. Homoiconicity is the "same" representation of program and data, and they give Lisp and Tcl as examples. I want add the following to the philosophical discussion.
Q: Are program & data representations really the "same" if data can represent invalid programs? E.g. the form (nil 3 4) is valid data, but invalid program in Lisp.
I would answer "no" to this question.
- cturner 12y ago> I would answer "no" to this question. You're declaring a conclusion that goes against the outcomes of several pages of heavy argument. When you do this, it's customary to attempt to support your position with arguments. :) An only-somewhat-related anecdot. I remember sitting in the car with my sister and mother when I was young. My sister was learning to write. On this day, she asked what a fictitious word meant. She showed us a word she had written down, and then said it out loud. We didn't know what she meant. But we worked out that was playing with an idea: does the fact that we can use the tools to represent an idea (in this case, that you can form apparently words from letters) mean that it maps to an idea. As it happens, no.
- zvrba 12y ago> You're declaring a conclusion that goes against the outcomes of several pages of heavy argument. When you do this, it's customary to attempt to support your position with arguments. :) The argument is the conclusion from the bottom of the page, which I quoted: much ado about nothing. Then there's a long discussion about how machine code is not homoiconic, which I absolutely disagree with. In von Neumann architecture, and modern CPUs data == code, otherwise you couldn't make a JIT compiler.
- deleted 12y ago[deleted]
- sparkie 12y ago(nil 3 4) is a completely valid program if the "nil" symbol is bound to a lambda, so I'd argue that yes, it is still homoiconic. If you're looking for a language where every valid data structure is a semantically valid program - it doesn't exist.
- tsm 12y ago$ sbcl * (defun nil (x y) (+ x y)) * (nil 3 4) 7 And there's really no way to systematically account for what may or may not be in the namespace without completely missing the point of homoiconicity.
- zvrba 12y agoSome people deliberately miss the point. Oh well, replace "nil" above with "()".