newbie to lisp

Tomasz Rola rtomek at ceti.pl
Sat Jun 4 19:47:41 UTC 2022


On Sat, Jun 04, 2022 at 10:59:33AM +0300, Angelo Moreschini wrote:
> Hi,
> 
> I am a programmer of imperative languages and I would like to improve my
> (currently scarce) knowledge of <declarative> programming techniques,
> starting with the lisp language.

Ahoy,

Myself, long time ago, I started from learning some Scheme. R5RS
Scheme is quite simple, one can quickly (say, few afternoons? maybe
just one) get enough of it to write some simple programs and see if
you like it with parentheses. For this, one does not need to learn
about continuations and macros, it is really easy to grasp, IMHO.

There should be some dated but still good interpreters for R5RS. I
found Aubrey Jaffer's scm and Nils Holm's s9fes to be relatively small
and more or less easy to understand. Some newer Schemes adhere to R7RS
(or R6RS) standards and they are huge. I would say, too big for a
start. But much better for solving some real life problems. But you
are not there yet.

http://people.csail.mit.edu/jaffer/SCM

http://t3x.org/s9fes/index.html

Aubrey Jaffer also maintains slib, a library of Scheme code for even
older and mostly unmainained (as of now) interpreters, you could look
at those files and enjoy (or not) reading them.

After learning some Scheme, while I enjoyed it, I found myself a bit
stuck. I had little use for continuations and macros, and R5RS was, in
its pure form, very limited for everyday porgramming. So I started to
learn from other sources.

I guess you will want to befriend a Unix clone if you want to learn
the stuff. Some of it will work under Windows, but long term, you will
probably have less pain with Unix. 

And I guess you will want to befriend Emacs editor. It is not just an
editor. It is a pocket universe of Elisp, another LISP dialect. Elisp
has nice set of functions and I wrote few scripts in it, which were
then nicely interpreted by Emacs - stuff working with files, unpacking
archives and the like, nothing one would expect to be a job for
editor. Of course, Emacs does not need to open a window when running
in batch (script) mode.

Emacs comes with some help for LISP programmer - it knows how to color
the code, and nested parentheses may have different colors and when
one places cursor over a parenthese, a matching one can blink. And it
can get a LISP sentence and send it to interpreter, for quick
evaluation. It can integrate with some Scheme subprocess in order to
make your life easier (after you cry a bit, and pull your hairs a bit,
that is). It also has nice integration package for Common Lisp, called
Slime. Very, very nice. Overally, relation of programmer and Emacs is
quite similar to the one described as Stockholm Syndrome. I love it,
it is so good to me. It is not really bad editor, not at all.

Some of the features you may find in other editors of the day, but I
think that befriending Emacs few decades ago was one of the best
decision I could have make. Especially that I was always dragged
towards LISPs. So the one and another were supposed to come together.

And last but not least, Common Lisp. I would say, do not start from
this. But if you really have to, try locating a book "Common Lisp: A
Gentle Introduction to Symbolic Computation" by David S. Touretzky. I
did not really read it, I found it too late for me, but I have glanced
at the beginning and it looked like suitable for a beginner. Try
finding author's homepage.

Some will tell you to go with Peter Seibel's "Practical Common
Lisp". Well, you can try it. I found this book a bit too
huge. Clearly, Seibel talks a lot because he knows a lot. But at that
particular moment I just wanted a quick intro - how to make a function
in CL, what flow control options do I have, how to print to the
stdout. I found David B. Lamkins' "Successful Lisp" to be better for
me. It was, mind you, after I poked with Scheme for a while and
already had written my first dot-emacs file.

When they say that CL is "industrial LISP", they certainly are right,
but this might mean that using it is a bit like driving a
bulldozer. Built by space aliens. Very capable, One can shoot off
one's feet without much warning. One can saw off one's head. Then one
can safely return lost feet and heads to their proper places or even
rearrange them a bit. Not for the faint hearted. Which is why maybe it
is not the best LISP for starting your adventure.

Not that other LISPs will warn you about much. But one can learn to
like it, the outcome is worth the effort.

(I have no idea, does it all sound like I am a masochist?)

HTH, YMMV

-- 
Regards,
Tomasz Rola

--
** A C programmer asked whether computer had Buddha's nature.      **
** As the answer, master did "rm -rif" on the programmer's home    **
** directory. And then the C programmer became enlightened...      **
**                                                                 **
** Tomasz Rola          mailto:tomasz_rola at bigfoot.com             **



More information about the eurolisp mailing list