Ask HN: resources for learning functional languages?
Thank you, HN! Last year I was one of "those people:" the guy that would ask for advice on learning how to code, what language to use, what projects to work on.
Well I actually decided to hang around, and I'm comfortable with a few languages (Python, R, a bit of C) a year later, To avoid plateauing, though, I would like to step into Functional Programming Land.
In my experience, functional languages == Scala, so I'd like your suggestions on resources for Scala. Does the above expression evaluate differently to you? If so, can you suggest other languages (and their best resources)?
8 comments
[ 3.4 ms ] story [ 31.2 ms ] threadI like "A Gentle Introduction to Haskell," which is not gentle at all.
http://haskell.org/haskellwiki/Category:Tutorials
http://haskell.org/haskellwiki/Learning_Haskell
Also, Simon Thompson's book should be updated in October, and should be good
http://www.amazon.com/Haskell-Functional-Programming-Interna...
Other than that, there's "Introduction to Functional Programming". I've heard people say that they liked the first edition better, but the second one uses Haskell…
On the Scheme side of things, you've got your "Little Schemer" and "SICP", of course. Both very highly recommended.
I haven't read a Scala book that puts a big emphasis on the functional part – and as it's a rather Tim Toady language, it might be better to focus on something simpler or more "pure".
I've lost my copy of "The Haskell Road to Logic, Maths and Programming" while moving, but the first few chapters I've read have been pretty great, especially if you also want to close some gaps in your math knowledge.
http://blog.typesafe.com/free-pdf-from-typesafe-scala-for-th...
The other is the Pragmatic book by Subramaniam (Aug 4, 2009). Covers 2.7 (current is 2.9.1) but conveys well the power of simple code.
(The Staircase book by Spoon, Odersky and Venners is pretty gentle, but, uh, big)
----------------
You could look at this deck that mentions web apps in scala, haskell, F#, ocaml, erlang and clojure (adn also look at scheme and common Lisp
http://www.slideshare.net/carsonified/alex-payne-speedy-stab...