• skorn@ani.social
    link
    fedilink
    arrow-up
    16
    ·
    7 days ago

    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

    • Supercrunchy@programming.dev
      link
      fedilink
      arrow-up
      11
      ·
      7 days ago

      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…

      • Baizey@feddit.dk
        link
        fedilink
        arrow-up
        6
        ·
        6 days ago

        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

      • Supercrunchy@programming.dev
        link
        fedilink
        arrow-up
        4
        ·
        7 days ago

        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!

        • AnarchistArtificer@slrpnk.net
          link
          fedilink
          English
          arrow-up
          3
          ·
          6 days ago

          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