Hacker News new | comments | show | ask | jobs | submit login
Ask HN: What is the best way to get started with practical LISP?
28 points by wheresvic1 9 months ago | hide | past | web | favorite | 12 comments
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.

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

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.

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.

Clojure 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.

The second Racket getting started tutorial, https://docs.racket-lang.org/continue/index.html and the third, https://docs.racket-lang.org/more/index.html

> http://www.gigamonkeys.com/book/

try this book out. if you don't hate JVM then Clojure could be a good idea.

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.

Unless it's hobby, not sure how pragmatic idea is to program in AST nowadays... Even Norvig switched to Python.

What about an IDE, tooling, etc?

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.

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 :).

For 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.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact