Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

You can only edit posts for a certain amount of time.

Doesn't the requirement for homoiconicity become vacuous then?

The definition was:

> "a language in which the source code and the corresponding abstract parse tree have identical representations"

Now is:

> "a language in which the source code and the corresponding abstract parse tree have identical external representations"

Where external representation of source code is defined as the representation that's used in the interpreter or compiler, that is, the abstract parse tree. So the definition becomes: "a language in which the abstract parse tree has the same representation as the abstract parse tree"?

Alternatively replace "external" by "internal" everywhere in this post, if "internal" is the right name for CONS cells.



No the reversal in my above comments only applied to the example, not the way I defined internal vs. external representations. Sorry for the confusion.

My point is that you can't tell by looking at the defun in my above comment whether you're looking at Lisp source code or the parse tree (represented as a nested list) for that source code. The same would not be true in C where the external representation of the parse tree would be the C syntax for initializing some set of nested struct's. That would look very different than the source code itself.


Aha, so homoiconicity == supports quoting. That seems like a reasonable definition, although it's not perfect I can't think of a better one.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: