Update 3 Feb.! I’m still not ready to learn Haskell, but when I do, I think I’ll start here and here, and I am adding Pure to the list.
Sorry ’bout the abbreviated title, but s/w eng. can read it, right?
N.B. — I’m going out of town this wkend; I’ll post this now, and ‘complete’ it later. I’ll mark my place so you know…
Comments are more than welcome. I will respond, eventually.
Here is my “initial” list of languages (from the DDJ article mentioned previously, and friends like FFiend).
- Haskell, as I’ve already mentioned — a pure FP lang., designed for academics [from the DDJ article]
- OCaml, some documentation here and tutorial here.* [<--- I'm part way thru this, so I can do that next --->] I’m currently trying to write this (fr. Haskell syntax):
primes = 2 : [x | x <− [3..], isprime x]
isprime x = all (\p −> x ‘mod‘ p > 0) (factorsToTry x)
where
factorsToTry x = takeWhile (\p −> p*p <= x) primes
* the page on labels has some interesting info — this should be book-marked for later…
- Erlang — by Joe Armstrong at Ericsson “for building highly parallel, distributed, fault-tolerant systems.” [Dr. Dobb's -ed.] Also, FWIW, this and Haskell were the only two my buddy mentioned. Interesting: Erlang supports hot code upgrades (among other things)
- Scala — Java-based, hybrid language
- F# — Microsoft’s version of CaML
- J — “strong in mathematical, statistical and logical analysis,” according to the home page. It was recommended to me, and I did examine it, briefly, a long time ago. As memory serves, it has a built-in data type for matrices;
just perusing some of the web-site I recall how terse the language is. - Pure — I book-marked this via del.icio.us a while ago, but came back to it recently. I’ll let you know what I find out, when I try it.
- …
- Lisp — the original lambda calculus language (my paraphrase).
Some info on lambda calculus can be found here, Wikipedia, and here — the quality and value of these has yet to be determined…
- …
- Prolog — not sure if it qualifies as functional, but DDJ mentions in passing that is it declarative, as are those listed above.
- …
- Mathematica — the article points out that this can be a programming language as well; so I might as well mention: maxima (from macsyma), a GPL program I have installed, but not used extensively — I was interested in a mathematical “problem” and wanted something beyond paper and pencil (my college math prof. said always work problems in pencil, not pen; you will have to erase!) and I’d forgotten too much of my calculus to trust my own resources.
Some info about lambda calculus