3 ms·
> homoiconicity (data structure syntax) Can someone explain to me why we need a murky word like "homoiconicity" and then explain it as "data structure syntax"
by okareaman 6y ago
> homoiconicity (data structure syntax)
Can someone explain to me why we need a murky word like "homoiconicity" and then explain it as "data structure syntax" (which doesn't clarify much) when "self-modifying code" and "metaprogramming" are crystal clear?
- zodiac 6y agoBoth "self-modifying code" and "metaprogramming" don't mean exactly the same thing to me as "homoiconicity"
- okareaman 6y agoI guess I need to learn Lisp to understand the distinction. My only reference is XLST which is also valid XML. https://en.wikipedia.org/wiki/Homoiconicity https://en.wikipedia.org/wiki/Homoiconicity
- zodiac 6y agoWell, it depends on your exact definition of "self-modifying code" and "metaprogramming", given that it's not like there's an authoratative source you can look up the definitions in. The way I understand the term without additional context, XLST is not "self-modifying code" in the same way malware, certain JIT implementation techniques etc are.
- wtetzner 6y agoHomoiconicity means you're code is defined in terms of the same data structures that are used in programs written in the language. This makes self-modifying code and metaprogramming easier because the language's standard library is already full of functions that operate on those data structures. However, you can have self-modifying code and metaprogramming without homoiconicity, and you can have homoiconicity without support for self-modifying code and metaprogramming.