Why Nostr? What is Njump?
2025-04-02 20:13:29
in reply to

Red Rozenglass on Nostr: zardoz.el That is not lisp. You lost homoiconicity, and you're introducing large ...

That is not lisp. You lost homoiconicity, and you're introducing large amounts of syntax. That is not the lisp way. A lispy implementation, I would argue, would look something like this:

<list>
<atom>defun</atom>
<atom>frob</atom>
<list><atom>x</atom></list>
<list>
<atom>+</atom>
<atom>2</atom>
<atom>x</atom>
</list>
</list>
This way, if you write macros to manipulate code, you don't care that the lists are function calls or arglists or defuns, they're just lists and atoms, which is an important property of lisp languages; homoiconicity. A minor concession might be made perhaps for strings:
(setq name "John Smith")
<list>
<atom>setq</atom>
<atom>name</atom>
<string><![CDATA[John Smith]]></string>
</list>
Macro stuff, special forms, quoting and unquoting (i.e. ` and , ) might need their own elements too, stuff like:

`(set-age user ,(1+ old-age))
becomes:
<quote>
<list>
<atom>set-age</atom>
<atom>user</atom>
<unquote>
<list>
<atom>1+</atom>
<atom>old-age</atom>
</list>
</unquote>
</list>
</quote>

Author Public Key
npub1aj05n6h74ys35hfujyddczfcmr4drhs79xtrfdxw8sutdq2gnw9q994pgc