top | item 16584140

Ask HN: What is the best way to get started with practical LISP?

28 points| wheresvic1 | 8 years ago | reply

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.

12 comments

order
[+] deepaksurti|8 years ago|reply
Use 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/

[1] http://www.lispworks.com/products/lispworks.html#personal

[2] https://www.quicklisp.org/beta/

[3] https://letoverlambda.com, http://www.paulgraham.com/onlisptext.html

[4] http://landoflisp.com, https://github.com/norvig/paip-lisp

[+] macmac|8 years ago|reply
I would look to Clojure / ClojureScript. Suggest you start here https://www.braveclojure.com/foreword/ and when you feel fairly comfortable you can proceed to https://github.com/metosin/compojure-api for a solid approach to building a web API.
[+] brudgers|8 years ago|reply
I 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.
[+] bewe42|8 years ago|reply
I 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|8 years ago|reply
Unless it's hobby, not sure how pragmatic idea is to program in AST nowadays... Even Norvig switched to Python.
[+] wheresvic1|8 years ago|reply
What about an IDE, tooling, etc?
[+] brudgers|8 years ago|reply
Racket 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.

[+] bwbw223|8 years ago|reply
Emacs 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 :).