
Ask HN: What is the best way to get started with practical LISP? - wheresvic1
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.
======
deepaksurti
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/](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)

------
macmac
I 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
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.

~~~
ooooak
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.

------
brudgers
The 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
> [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.

------
bewe42
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
Unless it's hobby, not sure how pragmatic idea is to program in AST
nowadays... Even Norvig switched to Python.

------
wheresvic1
What about an IDE, tooling, etc?

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

~~~
brudgers
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.

