Search code examples
programming-languagesterminologytheoryhomoiconicity

What exactly does homoiconicity mean?


I was trying to understand the Wikipedia article on homoiconity, but it's too verbose and does not explain the main theory behind the word concisely. I should add that I'm not a native English speaker so I prefer simple English over academic white paper quotes.

So, what exactly does it mean if a language is homoiconic? What makes C#, Java or JavaScript non-homoiconic?


Solution

  • It means "code as data" which is a general characteristic of Lisp family.

    (add 2 3)
    

    Just like above string, which is both a list and also a function call. The "Homo" prefix stands for this characteristic.