Around 2000 I took an AI course at the University of Guelph. I don’t think I learned too much. We didn’t talk about neural networks, as far as I can remember. My end of term project was, I think, a pathfinding algorithm wearing an AI costume. There were certainly no discussions of transformers. No CUDA. No PyTorch. None of that existed.
But what I remember doing a lot of was coding in Lisp - a lot of Lisp in the dark University of Guelph CIS lab.
I always find Lisp a bit mind bending and feel like I will be a better programmer once I master it. But it also feels like wood carving, and most of the time I just need to slap some planks together for a bookcase, and don’t have the time to scrimshaw it into a beautiful work of art. I’m not seeing here how Lisp is differentiated from an agent with a code sandbox and python, unless we’re operating that agent inside of Emacs… That’s where the code and the data are swimming together. I don’t think there isn’t a difference, it’s more a matter of my not getting it, if anyone is able to help me understand it’d be appreciated
You can implement an agent loop in any language, and modern languages can do everything that lisp can, so there’s nothing magic in lisp. At the end of the day lisp is just another weakly typed functional/procedural language.
Personally I didn’t find lisp that much elegant due to the loose typechecking and the excessive parentheses, but the macro system allows some very terse and smart (and mind-bending, as you said) solutions, which do feel pretty cool when they work fine.
IMHO it’d be probably better to give your agent access to a python interpreter because it’s much more prevalent in the training data than lisp…
tbf high prevalence is a double edged sword, it also means it’s trained on a lot of poorly written code which it will slide into
I feel the same! also there is
evalin javascript or any other scripting language. why use Lisp specifically?I self-learned lisp last year using the old SICP book, but I do consider myself a fairly expert programmer, and I felt that book was a bit hard at the end of it.
IMHO the key difference of lisp’s eval wrt python’s eval is that it takes in input a parsed expression (a lisp list) and not a string. In lisp though you don’t have to use eval much, because the macros allow you to transform the expressions from your programs directly (take in input parsed code, return a different code structure to be executed). The quote and quasiquote functions are there to make that easy!
I don’t know javascript enough, but in python you’d have to use eval and use some kind of parsing package crazyness if you wanted to implement a similar macro system!
As a scientist who has ended up gradually becoming more of a programmer, I battled through the SICP after seeing the cult following it has. It’s a weird, but good book, and I couldn’t imagine a book like that using anything other than Lisp