
Functional Programming For The Rest of Us - mattjaynes
http://www.defmacro.org/ramblings/fp.html
======
ced
I only read the historical part, and I got caught by this line:

"Nevertheless Alonzo had regular contacts with other Princeton inhabitants.
Among them were Alan Turing, John von Neumann, and Kurt Godel."

Wow. Where can you find that today?

~~~
dpapathanasiou
Google comes close (from Paul Tyma's blog):

 _"At Google, you never know who your interviewers are going to be. If you say
you're a Java or C++ expert that rates a 10 - you darn well better be -
because you never know - your next interviewer could be Josh Bloch, Matt
Austern, Guido van Rossum, or Ken Thompson."_

<http://paultyma.blogspot.com/2007/03/howto-pass-silicon-valley-software.html>

~~~
ced
Apart from possibly Ken, none of them compares IMO to the Princeton list, not
by a long-shot. I often wonder why there seems to be less scientific genius
around, and there are three options:

1\. Problems these days require teams (meh)

2\. The geniuses are there, they just never get recognition until much later

3\. They're off doing technical work rather than scientific research. I.e.:
they do startups, not publish articles. Can you imagine that your project
might be up against a modern-day Einstein?

4\. I'm out of touch. Geniuses are still there, in plain sight.

~~~
imp
I've thought the same thing myself and I usually assume that it's a
combination of #2/#4. The geniuses are out there, and those who work directly
with them know that they're geniuses, but they won't get wide-spread
recognition until much later. Probably because they're working on ideas that
won't (can't) be implemented until much later.

Actually, it might be that there are many groups of geniuses out there, but
only those whose work ends up being useful (depending on random future events)
are later regarded as geniuses. Like the article said, the demand for
computers didn't really increase until WWII.

------
ralph
Worth reading if you're new to FP. It's a shame the author used Java for
explanations instead of C which is closer to the bare metal and would expose
more of the internal workings.

~~~
mojuba
I'd choose JavaScript instead, since it already has most of what he explained.

~~~
ralph
I think you miss my point. I'm saying that in order to explain some of these
things it's better to use a language like C that's close to the hardware and
doesn't offer them natively in order that their implementation must be
exposed.

Using Javascript because the language already has most of the features would
just be explaining the syntax of Javascript, akin to Knuth using Python
instead of MMIX and his descriptions of sort becoming an explanation of how to
use Python's sort; not how it works under the covers. :-)

An older example is a good book, now downloadable, by Axel-Tobias Schreiner,
the German translator of K&R;, etc., that implements a C preprocessor in awk
that adds OO features to C, thereby explaining how a language with the
features built in, e.g. C++, implements them.

Objekt-orientierte Programmierung mit ANSI-C:
<http://www.cs.rit.edu/~ats/books/ooc.pdf> (English translation.)

~~~
mojuba
Absolutely agreed, and actually I wrote an email to the author yesterday
saying roughly the same thing, although I didn't think about just C.

