Func. Prog. Lang. Ref.

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)
    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 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


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: