What are some good resources for learning about functional programming? Why?
-
Follow-up on Erik Meijerâs suggestions for further reading in Functional Programming http://kanak.kshetri.com/camping/?p=94 and http://news.ycombinator.com/item?id=2368783
-
Answer:
The best introduction is only half written: How to Design Programs, Second Edition (http://www.ccs.neu.edu/home/matthias/HtDP2e/). Right now, I would recommend following HTDP/2e until the text runs out, and then switching to the first edition (http://htdp.org/, http://www.amazon.com/How-Design-Programs-Introduction-Programming/dp/0262062186). How to Design Programs is about learning to program, and it uses functional programming to teach programming because that allows it to focus on basic skills and techniques. But that doesnât mean itâs only for programming novices. We use it for freshmen, but we also use it for M.S. students (who already have undergrad degrees in computer science), so itâs certainly appropriate for programmers and non-programmers alike. Compared to other approaches to teaching programming and functional programming that Iâve been involved with, both as teacher and as student, it consistently works the best. Students quickly become comfortable with fundamental functional programming techniques including recursion of various flavors and higher-order functions. The center of the HTDP approach is the concept of a âDesign Recipe,â which is a step-by-step process for designing programs or parts of programs. The idea is to provide a rational approach to design, eliminating trial-and-error and random thrashing, which is common when learning programming or learning a new paradigm. The only way to learn this stuff is to do the exercises, and I strongly recommend following the recipe when doing the exercises, no matter how silly it may seem at first, because it will pay off later.
Jesse Tov at Quora Visit the source
Other answers
I enjoyed "The Haskell School of Expression", http://plucky.cs.yale.edu/soe/. It has a non-traditional set of problems and did a good job of showing the uniqueness of the language. I admit though that I already knew a bit of the language and other functional languages like ML so I can't say if it's great for a complete beginner.
Adam Hupp
I highly recommend learning Haskell as a first functional language, and one of the best introductions is online http://learnyouahaskell.com/ Or, if you prefer Erlang, then http://learnyousomeerlang.com/ is also great. Paraphrasing Matt: just get stuck in, you'll not regret it.
Keith Lomax
I'd start with the many excellent answers here: To reiterate what I said there, SICP (both the book and the video lectures) are still the gold standard in my mind. When you watch the videos, take notes. Treat it like a real lecture. Make sure you absorb the material rather than letting it flash in front of your eyes. It's dense and old. If you have questions, ask on the various reddits, stack exchanges or of course, here on Quora.
Matt Nunogawa
Robert Harper's Programming in Standard ML is fantastic, and SML makes functional programming concepts very clear: http://www.cs.cmu.edu/~rwh/smlbook/book.pdf
Omer Zach
http://www.manning.com/khan/ by Aslam Khan for Manning Publications is a good resource. It contains examples in Scala, it's written for beginners and is rich with graphics that makes learning easy.
Aleksandar Dragosavljevic
Structure and interpretation of Computer Programs (SICP book) the video lectures by the authors are awesome
Arvind Devaraj
The Structure and Interpretation of Computer Programs is often cited and is a text I am personally following. http://mitpress.mit.edu/sicp/
Toby Thain
Related Q & A:
- What are some good competitive problems for a programming contest?Best solution by Programmers
- What is a good college for computer programming?Best solution by Yahoo! Answers
- What are good resources online for studying for the GRE?Best solution by magoosh.com
- What is a good free email service to use and why?Best solution by Yahoo! Answers
- What are good books for learning english?Best solution by Ask.Metafilter.Com
Just Added Q & A:
- How many active mobile subscribers are there in China?Best solution by Quora
- How to find the right vacation?Best solution by bookit.com
- How To Make Your Own Primer?Best solution by thekrazycouponlady.com
- How do you get the domain & range?Best solution by ChaCha
- How do you open pop up blockers?Best solution by Yahoo! Answers
For every problem there is a solution! Proved by Solucija.
-
Got an issue and looking for advice?
-
Ask Solucija to search every corner of the Web for help.
-
Get workable solutions and helpful tips in a moment.
Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.