On 05/01/12 12:09 PM, Liam Proven wrote:
...
For instance, the lambda calculus. What is it? What does it do, what
is it for, why is it special?
There is a wealth of material at all levels devoted to this. Pick up any
functional programming text, e.g. I highly recommend
* Functional Programming - Application and Implementation (Henderson).
* The Architecture of Symbolic Computers - Peter M. Kogge
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.
Readable and comprehensible explanations:
* SICP
* Programming in Scheme (Abelson & Eisenberg)
* aforementioned Henderson.
and dozens of others. There are A LOT of good functional programming
texts out there, many dating back to the 70s and 80s of course, and far
in conceptual advance of the mainstream (PHP!
ASP.NET! Java! snore).
If the teaching& reference materials that I have found so far are
unable to convey these core concepts, then there would seem to be two
possible conclusions:
[a] /all/ the materials that I've been able to find are extremely
poor, even the ones that are more or less universally agreed to be
very good
or
[b] these are complex, difficult concepts and a massive amount of
back-knowledge is necessary to understand it.
I had high school math and a pile of imperative programming experience
but was still able to understand the basics (i.e. enough to use these
concepts in a functional language).
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?
One does not imply the other. It's as EASY or as HARD as sailing a
yacht, yet people manage to do that latter. If you're not motivated you
won't succeed. This is no different to anything else in life.
--T