I think I am finally mentally ready to tackle #lisp and become enlightened. Oh spirit of the fediverse, please share all your wisdom, protips and useful resources (other than SICP, which I'm already reading) ^^

If you do Common Lisp, keep in mind that Guy Steele's _Common Lisp: the Language_¹ is much more than a specification (while not a textbook).
_________
¹ CLtL; the full text is available on the Internet.

@spook

#CommonLisp
#Lisp

@vnikolov @spook
I would recommend looking into Scheme, which is a revised, modern Lisp invented in the 70s.

While imperative style is prominent in Lisp, it is commonly frowned upon in Scheme, which still allows imperative style but encourages functional programming.

The canonical book is SICP, https://mitp-content-server.mit.edu/books/content/sectbyfn/books_pres_0/6515/sicp.zip/index.html

#SICP
#lisp
#scheme
#guile

Welcome to the SICP Web Site

@janneke @vnikolov @spook No.

The imperative style was very much frowned upon in all Lisps until Common #Lisp introduced SETF, which sold the pass. We had RPLACA and RPLACD in much the same way as #Prolog has the cut operator: ugly hacks, shameful to use, to get around the inadequacies of our machines.

I still think it's best to think of Common Lisp as not Lisp at all but more Fortran-with-brackets.

Modern Lisps like #Clojure use immutable data, which makes imperative style impossible.

@simon_brooke @vnikolov @spook
Ah, that makes so much sense; I've always wondered.

So that's why so much "Lisp" code looks so terrible...How sad!

Thanks for educating me.

Real Programmers™ can write bad programs in any language.
And they do.

Ha ha only serious...

P.S.
Someone said that Algol was a big improvement to many languages that came after it.
To some extent this is true about Fortran as well.
(The proverbial devil in the proverbial details, of course.)

@janneke @simon_brooke @spook

@vnikolov @janneke @spook I do wish Real Programmers™ would stick to #Perl, which was written especially for (and by) them.

@simon_brooke Back in the 1990's I programmed Perl professionally and it was truly amazing to see the reactions of other Perl programmers to functional Perl. Mostly negative but occasionally like a bolt of enlightenment.

I suppose it shouldn't be that surprising that it has good syntactic support for call-with style functions, as Perl has everything in there somewhere

@vnikolov @janneke @spook

@tfb @vnikolov @janneke @spook

Indeed. I have myself seen some elegant, well structured, well documented code written in Perl.

Some.

Just as some people can write Fortran in any language, so, equally, there are some people who can write elegantly in any language.

Some.

@simon_brooke @vnikolov @janneke @spook The thing I found interesting about functional programming in Perl is just how much the language (not APIs obviously) did not work against you. Refer to things by value, don't try to mutate references, use closures, and things are easier. The ref counter doesn't get confused. The whole language and a lot of its weird warts just ... work.
@simon_brooke @vnikolov @janneke @spook (The APIs all fight you tooth and nail, though)