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

How does that work? Homoiconicity is a property of the language, not something you can develop as a layer.


JS was already pretty close. Babel allows a fantastic degree of power in code transformation, it just doesn't preserve blank space.

If I were to use my preferred terminology I would simply call these transform-your-own-code formats "embeddings", and there can be many embeddings for a single language.


> Babel allows a fantastic degree of power in code transformation

That's still not homoiconicity. It reminds me old Stuart Sierra's presentation from Clojure/conj¹. Around 6 minute mark: "Adding eval to a language, even successfully, does not count as homoiconicity"... "and you didn't even succeed at that..."

---

¹ https://www.youtube.com/watch?v=o7zyGMcav3c




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

Search: