by Travis Whitton
“The basic idea behind functional programming is to compose your programs using functions that return a single value and avoid side effects whenever possible.
…
For many years, programmers have written code under the assumption that performance wasn’t an issue because the next generation of processors would pick up the slack. We’ve reached the point where we’ll never be able to assume this again. From this point on, things will become increasingly parallel, which means that learning to work with multi-core machines will become an increasingly marketable skill.
Traditionally relegated to academia, theorem proving, and compiler writing, functional languages have are finally becoming mainstream by filling the multi-core niche. Even if you don’t adopt a functional language for your day job, taking the time to learn a different method of problem solving will make you a better programmer and provide valuable techniques you can use in your day to day work.
This being said, there are some really nice languages out there to play around with. I will briefly highlight a handful of them for your perusal. Please take note, that not all of these adhere explicitly to the immutable state share nothing model previously mentioned; although, most provide exceptional facilities for multi-core programming.”


