One of those exercises that are now just boring, because AI does it better.
Gemini did write Lisp-1 interpreter in Linux-assembly the other day. It was ready to implement garbage collection and compiler and all shit, but that was just depressing from human point of view.
My Lisp from 1975 was actually used in real world and highly lucrative. Gemini could read the source code, but it told that my code was piece of shit and cannot be implemented in 64-bit world without drastic changes, so it made an example. But that version was just too advanced and too complex as a study subject. There are already enuff good Lisps in the world, methinks.
show comments
chombier
If you ever wondered how to write a programming language, this is probably the best resource to get started (and then of course Crafting Interpreters).
There are edge cases where this fails, but `def parse(s): return json.loads('['+re.sub('([")])\s*(["(])','\g<1>,\g<2>',re.sub('[^()\s]+','"\g<0>"',s)).replace('(','[').replace(')',']')+']')` is a surprisingly robust lisp parser.
e12e
(2010)?
timonoko
[fagged]
show comments
RedCinnabar
Man these kind of resources have aged really bad in the age of AI.
One of those exercises that are now just boring, because AI does it better.
Gemini did write Lisp-1 interpreter in Linux-assembly the other day. It was ready to implement garbage collection and compiler and all shit, but that was just depressing from human point of view.
My Lisp from 1975 was actually used in real world and highly lucrative. Gemini could read the source code, but it told that my code was piece of shit and cannot be implemented in 64-bit world without drastic changes, so it made an example. But that version was just too advanced and too complex as a study subject. There are already enuff good Lisps in the world, methinks.
If you ever wondered how to write a programming language, this is probably the best resource to get started (and then of course Crafting Interpreters).
See also part 2 https://norvig.com/lispy2.html
(how-to in-python (write (interpreter lisp)))
Writing a Lisp is one of my favorite projects. I try to do it every year or two, taking a different approach each time.
I can't recommend highly enough to implement a simple lisp (or a forth).
Illuminating experience and it will also help you see (among many other things) the parentheses in a different light.
or you could just use Raku and its “surprisingly good lisp impression”:
https://www.codesections.com/blog/raku-lisp-impression/
Appreciated the title xD
There are edge cases where this fails, but `def parse(s): return json.loads('['+re.sub('([")])\s*(["(])','\g<1>,\g<2>',re.sub('[^()\s]+','"\g<0>"',s)).replace('(','[').replace(')',']')+']')` is a surprisingly robust lisp parser.
(2010)?
[fagged]
Man these kind of resources have aged really bad in the age of AI.