Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Depends on you you can either "jump in the deep end" or you can gratually move more to it.

Gratually moving is good if you want to stay productive. (Scala, Common Lisp, dylan come to mind)

Jumping in the deepend will totaly go against everything you learned but you will learn very fast. (Haskell, ML, Clojure and Scheme are probebly best here)

Books: Land of Lisp/Practical Common Lisp for Commen Lisp Not sure about Scala Programming Dylan for Dylan

Learn you a Haskell for Haskell Programming Clojure/Practical Clojure for Clojure Structure and Interpretation of Computer Programmes/The little Schemer for Scheme (Don't know a good book for ML)



I'd put ML closer to the gradual camp, though it depends strongly on where you learn it from, and partly on which flavor you choose. I see a whole lot of procedural-flavored Ocaml, and it's fairly easy (like Lisp) to mix procedural and functional styles.


Ok, I didn't know that. I have never seen a line of procedural code in ML. Thx for the info.


Yes, the plan is to jump in the deep end, unwire my brain and apply the concepts I learn to my day to day Ruby/Javascript programming as much as possible. I think I'll go with Haskell.


I am currently learning Haskell. I started by not really knowing where to start. Now I follow this advice, and until now I find it very helpful:

http://stackoverflow.com/questions/1012573/how-to-learn-hask...


If you are interested in the "deepend" then you could always have a look at lambda calculus and combinators:

http://en.wikipedia.org/wiki/Lambda_calculus

http://en.wikipedia.org/wiki/Combinatory_logic

Then you get to see where the term Y Combinator came from :-)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: