Live data from Hacker News

Ask HN: What Is the Lisp “Enlightment”?

news.ycombinator.com

21–30 of 45 posts

Re: Ask HN: What Is the Lisp “Enlightment”?

#23
While it's part of homoiconicity, I'd stress that a great part of the language is that it grows without warts. Because the "syntax" is so insanely regular, new layers of abstraction look just like the builtin layers.

With something like SBCL, you can literally write assembly in lisp notation (called VOP in SBCL), then layer the Common Lisp language on top seamlessly, then layer your domain-specific code on top with your code looking and acting just like it is part of the native language.

When you're done, you've built language primitives up to deal with your specific problem domain then you can solve the problem with a language custom-made for your needs.

Re: Ask HN: What Is the Lisp “Enlightment”?

#26
The big topic is meta-programming with symbolic expressions

1) one can generate code and evaluate it

2) one can write simple interpreters, see McCarthy's first Lisp interpreter in Lisp -> your own eval

3) one can write procedural source code transformations, where the code is Lisp data -> transforming Lisp programs by Lisp programs -> apply the same development tools to the meta-level -> integrate it directly into the evaluator

The englightment is understanding how a minimal Lisp machinery for this works and that things fit together quite well.

4) how to apply source code to various software problems, for example in declarative programming or how to provide simpler interfaces to more complex, say, object-oriented mechanisms (-> example CLOS)

then there are a large number of consequences / further directions

* addressing the deficiencies of that model

* compilation

* language building (embedded DSLs)

* editor interfaces

* interactive programming

* UI representations as data

* machine models

Re: Ask HN: What Is the Lisp “Enlightment”?

#29
I have been using Common Lisp professionally since 1982, and other Lisps before that. It has always been my language for thinking and experiments.

If you are just starting, maybe you would be better off using Racket Scheme - it has a modern and rich ecosystem around it.

If you do go with Common Lisp, you can grab a free copy of my book by setting the price to $0.00 https://leanpub.com/lovinglisp There are better introductory Common Lisp books, but mine has many fun example programs that you might enjoy if your technical interests overlap mine.

Re: Ask HN: What Is the Lisp “Enlightment”?

#30

Lisp is 64 years old. In some ways its reputation is oversold. A lot of features (GC, varargs, lexical scope, closures, higher-order functions, dynamic method dispatch, reflection) first gained prominence in Lisp, despite being extravagantly expensive. Some optimizations were found, computers became vastly more powerful, and now those innovations are merely table stakes for any modern language. IMHO the biggest excep…

For me the most “woa” thing about LISP and its macros is that code is data, and data is code. The representation of a (nested) list is exactly the same as actual code, and using macros, I can manipulate it as such. That is pretty profound, and I still have yet to find a language that just makes it so simple and elegant as with LISP.

If one is interested in Lisp macros, btw, a good (and quite readable) book that covers the subject is On Lisp [0], by Paul Graham. You can download it as a PDF from the author's site[1].

P.S. If you're looking for Lisp enlightenment experiences, actually read through the code snippets in the book -- spending a few minutes staring at 5 lines of macro code and then having understanding dawn on you will give you some of those experiences (at least in the small) :-)

[0] http://www.paulgraham.com/onlisp.html

[1] http://www.paulgraham.com/onlisptext.html

Post reply on HN