4 ms·
Ask HN: What is the best way to get started with practical LISP?
Looking for tips and pointers on learning and getting started with practical LISP, i.e. say build a web API or a basic GUI, etc.
- macmac 9y agoI would look to Clojure / ClojureScript. Suggest you start here https://www.braveclojure.com/foreword/ https://www.braveclojure.com/foreword/ and when you feel fairly comfortable you can proceed to https://github.com/metosin/compojure-api https://github.com/metosin/compojure-api for a solid approach to building a web API.
- brudgers 9y agoI like Clojure as a language, but there are a lot of moving parts because Clojure is built as a DSL on other languages (Java and Javascript) and because the middle point of Clojure tooling lives in Emacs. To me, Clojure is a great production language and but a not so a great teaching language.
- ooooak 9y agoClojure is a programming language. it's not a DSL by any mean. I don't have much experience with it but it does not look like a DSL to me. maybe you know something that I don't.
- hotpeppersauce 9y agoUnless you already know it, don't bother trying to configure Emacs. Like macmac, I suggest Clojure with IntelliJ + Cursive plugin. If you want to use Common Lisp, I would suggest Portacle[0]. I suggest the book 'Practical Common Lisp'[1]. I've worked through it and 'Land of Lisp' and while they are both worth reading, I personally prefer the examples in Practical Common Lisp. [0] https://portacle.github.io/ https://portacle.github.io/ [1] http://www.gigamonkeys.com/book/ http://www.gigamonkeys.com/book/
- brudgers 9y agoThe second Racket getting started tutorial, https://docs.racket-lang.org/continue/index.html https://docs.racket-lang.org/continue/index.html and the third, https://docs.racket-lang.org/more/index.html https://docs.racket-lang.org/more/index.html
- ooooak 9y ago> http://www.gigamonkeys.com/book/ http://www.gigamonkeys.com/book/ try this book out. if you don't hate JVM then Clojure could be a good idea.
- wheresvic1 9y agoWhat about an IDE, tooling, etc?
- bwbw223 9y agoEmacs is probably the way to go- it has its own lisp dialect for scripting the editor. I don’t have any experience using it as I use vim, though :).
- brudgers 9y agoFor Lisp in general, Emacs is all a person really needs. That's not a comment about IDE's or editors. Because Emacs has eLisp, there's no need to pick another lisp like Clojure or Common Lisp. eLisp is a full fledged, well documented, Lisp with a lot of features. It even has built in coverage for interactive user interfaces of windows and menus (though not exactly what people might call GUI's). It can reach out and do networking, though it is closer to the Unix model of making system calls than language libraries or "built in sockets" approaches...but the proof is in tools like Magit and sx-mode or even the older Rmail and GNUS. Basically, Emacs is a virtual Lisp Machine which is why some people are able to live in it all day, everyday, year after year.
- brudgers 9y agoRacket ships with an IDE, DrRacket. Racket is really easy to get started with because it is "batteries included" by design. There are not other tools to set up. There is no configuration. Windows, Mac, or a Debian based Linux like Ubuntu, it takes just one binary download to be up and running. It can also be compiled from source on other Linux/Unix systems like a SOC based computer. For Common Lisp, Clojure, and Schemes like Guile, Chicken, or MIT, the most common editor is Emacs (it is also the most common editor for Emacs Lisp). But people use all sorts of tools successfully. Part of that is because the REPL plays such a large role in Lisp development. Common Lisp implementations usually even allow modifying live running code (as does Clojure). They are not like working in C.
- deepaksurti 9y agoUse Practical Common Lisp [0] as the book to start learning Lisp, Common Lisp is the more production version lisp. Download LispWorks Personal Edition [1], if you want to start working with an IDE setup. Use it when working through PCL. LW also has GUI library, mobile runtimes and other libraries available from QuickLisp [2], CL's package manager to install various libraries. After working through PCL, you will have a good CL foundation. You can expand your macro (pun unintended) knowledge by working through [3]. Other good resources: PAIP and Land of Lisp. Note about PAIP is more a specific application of CL to solve classical AI Problems, despite that it is still counted as among the best programming books out there. Hope this helps and `Welcome to the Dark Side`. PS: Except `Land of Lisp` cited in the resources, everything is free. [0] http://www.gigamonkeys.com/book/ http://www.gigamonkeys.com/book/ [1] http://www.lispworks.com/products/lispworks.html#personal http://www.lispworks.com/products/lispworks.html#personal [2] https://www.quicklisp.org/beta/ https://www.quicklisp.org/beta/ [3] https://letoverlambda.com https://letoverlambda.com, http://www.paulgraham.com/onlisptext.html http://www.paulgraham.com/onlisptext.html [4] http://landoflisp.com http://landoflisp.com, https://github.com/norvig/paip-lisp https://github.com/norvig/paip-lisp
- bewe42 9y agoI recommend reading SICP and using Clojure to implement the exercises. There're plenty of solutions out there should you get stuck or need inspiration. Not only are you going to learn a LISP-like language, you also study one of the best programming books plus get to know a compelling language.
- zerr 9y agoUnless it's hobby, not sure how pragmatic idea is to program in AST nowadays... Even Norvig switched to Python.