Functional Programming is considered to be difficult. I know some who started with it, but were intimidated by the language used. And, by experience, it sure is a lot intimidating if you come with a imperative programming background.
So, here is a list of articles that perhaps provide a gentler introduction for the rest of us:
- Functional Programming For The Rest Of Us
- Why Functional Programming Matters
- Back to the Basics of Functional Programming
- Functional Programming on Haskell Wiki
- Can Your Programming Language Do This?
- The essence of functional programming
There are a lot of languages you can start with to understand functional programming, like Haskell, Scheme, Erlang, Scala, F#. Or if you think this is taking it too far, you can find functional programming a lot closer than you can think.
- Functional Programming How to in Python 3.0
- Query Composition using Functional Programming techniques in C# 3.0
- Functional Programming with Groovy
- Functional fun in JavaScript and Dojo
- Explore functional programming techniques in Ruby
- Functional Programming with a side of Perl 6
- Higher Order PHP
- Higher-Order Perl, as mentioned by Shlomi Fish
- Partial Function application in PHP
You will also find some libraries that can help you start functional programming in language of your choice:
- FunctionalJ
- FC++
- Functional JavaScript
- Fn.php
I am sure I have missed some references, I will add them as and when I find/remember more. Feel free to add to this.

February 6th, 2009 at 10:46 pm
Thanks for the links dump. I would add a few links on closures, about map/reduce, etc.
February 7th, 2009 at 1:47 am
The book Higher Order Perl (which is now available online free-of-charge) shows how to use functional programming techniques in Perl. I personally found it a bit tiresome, having read “Structure and Interpretation of Computer Programming” (SICP) beforehand. But it’s still useful for people who are not as exposed to higher-order functions as I am.
I think Perl supports functional programming better than Python (which only has single-expression closures and doesn’t have a “my”/”let”/etc. like keyword for inner-scoping variables), and possibly also better than Ruby (which also doesn’t have a keyword for inner-scoping variables).
February 7th, 2009 at 5:34 am
[...] Resources For Introduction To Functional Programming | iface thoughts Functional Programming is considered to be difficult. I know some who started with it, but were intimidated by the language used. And, by experience, it sure is a lot intimidating if you come with a imperative programming background. (tags: programming haskell functional resource) Possibly related posts: (automatically generated)links for 2007-06-23Django: A Framework For The Python Programming LanguageIntroduction to DjangoThe Django Book [...]
February 7th, 2009 at 8:53 am
Binny, I held back my temptation to add links about specific attributes of functional programming. Wanted to keep this limited to the introduction and tools to try it out. Maybe we can do another post for it.
I have updated the post for references for Perl and PHP!
Shlomi thanks for the Higher-Order Perl link, I had completely missed it. It is not common to find books dedicated to functional programming in languages that were not designed to be.