It's being mentioned that Io language is homoiconic.<p>To me homoiconic means "Expressing the language in the data-structure of the same langage" . For exp, LISP, is all LISP list.<p>I'm trying to understand Io is homoiconic?<p>Though I can see that the Io programs are objects and message, a given statement is not a data-structure of the language per se.<p>For example, can someone explain how this statement is homoiconic,<p>```
Number / := method (i,
if (i != 0, self origDiv(i), 0)
)<p>```
If this is Steve Dekorte's Io, then the Io page that was at <a href="http://www.iolanguage.com/" rel="nofollow">http://www.iolanguage.com/</a> stated in 2004 that it was like LISP in that "code is a runtime inspectable/modifiable tree". This is not homoiconic in terms of syntax of rather in terms of data model.<p>Io is so in perhaps the same way as Pico <a href="http://pico.vub.ac.be/" rel="nofollow">http://pico.vub.ac.be/</a> is because Pico expresses the code as data type though of specific types which are not normally used for user program data.