On 5 January 2012 19:03, Josh Dersch <derschjo at mail.msu.edu> wrote:
On 1/5/2012 9:09 AM, Liam Proven wrote:
All right, some interesting points there.
But, by way of seeking clarification - well, let's put it this way. I
am interested and very curious about Lisp, Scheme, Lisp Machines and
so on. Indeed I am, as a result of my reading, trying to research and
write an article on the history of Lisp Machines.
And yet, despite reading acres about this, I have yet to find *any*
coherent nonspecialist texts, guides, tutorials or explanations about
these languages.
What texts have you looked at?
The Little Lisper
The Little Schemer
Lisp by Winston and Horn
"Structure and Interpretation of Computer
Programs"
(
http://deptinfo.unice.fr/~roy/sicp.pdf) is a great introduction. ?Recently
I've skimmed through "Land of Lisp" which is a fun book with a good sense
of
humor that teaches Lisp by way of writing simple games.
Top tips - especially the PDF. Many thanks!
For instance,
the lambda calculus. What is it? What does it do, what
is it for, why is it special?
It's the fundamental mathematical concept behind functional programming
languages. ?It's by no means a prerequisite for using (or understanding)
Lisp. ?I'm not sure I understand it well enough to explain it coherently, so
I'll let someone else chime in here :).
Sadly, I don't think they did. :?/
Closures:
again, I have yet to find a readable, comprehensible
explanation of what they are, what they are good for, why they are
powerful and what strengths they confer onto a programming language.
(Warning, huge URL, to Peter Siebel's "Practical Common Lisp")
http://books.google.com/books?id=gwyZ4jdn_jMC&pg=PA68&lpg=PA68&…
See page 68 at least.
Roger wilco
Or [c] you're taking the wrong approach to
actually learning this. ?Sit down
with a copy of SICP and a computer running Scheme. ?Go through the examples.
?Experiment. ?And don't worry about understanding everything all at once.
OK, fair call.
(I'd also argue that the two items you list as
"core concepts" are not as
"core" as you're making them out to be. ?As I've said, understanding
Lambda
calculus at the mathematical level is by no means a requirement for actually
using a functional programming language. ?Similarly, closures are very
useful but by no means required knowledge for starting off in Lisp.)
All right, I will take that on board. It is just that, AFAICS, when
people speak of the superiority of Lisp over other programming
languages, or of its core strengths and why it is worth looking at or
learning, they tend to cite these things. However, nobody appears to
be able to explain /what they are./
It is troubling.
I would
*REALLY* like and hugely value any pointers, ideally web links
but print references would do as well, as to these concepts.
But are there other possible explanations that I have missed? That
these things are easy but all the texts are rubbish?
I'm not going to say these things are easy -- programming isn't easy in
general. ?Learning a new programming paradigm isn't easy.
OK, I can't argue with that.
?Lisp and Scheme
themselves are not complicated, but there are concepts in them that you
really won't understand until you sit down and start using them. ?You'll
have a few "a ha!" moments, and things will start making more sense. ?I'm
still relatively inexperienced with Lisp. ?I know my way around it, but I
don't claim to be an expert, and I'm still learning new things that make me
say "a ha!"
Hmmm. Interesting. All right.
--
Liam Proven ? Profile:
http://lproven.livejournal.com/profile
Email: lproven at cix.co.uk ? GMail/G+/Twitter/Flickr/Facebook: lproven
MSN: lproven at
hotmail.com ? Skype/AIM/Yahoo/LinkedIn: liamproven
Tel: +44 20-8685-0498 ? Cell: +44 7939-087884