The first thing I did was try Scheme, Erlang, Haskell, O'Caml, Scala...until I was tired of it. There is great variation among functional programming languages. Pervasive static typing (Haskell, O'Caml and the ML family in general) makes for a very different experience. The same goes for macros (Scheme and Common Lisp). Programming in Erlang is wildly different from the others, too -- as it emphasizes servers, concurrent communication and redundant architecture in a way that just does not come up in, say, Haskell.
After my initial experimentation, I asked myself, what is functional programming? I took it to mean "all single assignment, all the time" -- so I went with Haskell. The rest of languages mentioned above allow you to escape the single assignment restriction in various ways; and the other languages that adhere to single assignment are "totally obscure" in the Paul Bissex sense. As for efficiently learning all this stuff -- I'm not sure there is a way -- I recently picked up a real analysis book so that I'll understand types better. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to "Bay Area Functional Programmers" To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/bayfp?hl=en -~----------~----~----~----~------~----~------~--~---
