Introductory guide to functional programming concepts

Click for: original source

Functional Programming is a vast ocean of thoughts, ideas & implementations. I have only begun to explore this exquisite programming paradigm. From an imperative world, I transitioned into a more organized process of Object-Oriented Design (OOD), and more recently, having experienced all the goodness and shortcomings of object-oriented thinking, I’ve stepped into the exotic sphere of “functional programming”. By Sreedev Kodichath.

Before we jump into the functional approach, I need to talk about the kind of functional programming I intend to discuss today. There is “functional programming”, then there is “purely functional programming”.

In purely functional programming languages like Haskell, you cannot have side effects. Purely functional programming forbids side effects, which means purely functional programs cannot affect any changes in the real world. But programs would be pretty much useless without side effects. To model side effects in a purely functional way, languages like Haskell use “Monads.”.

Author will take you through some functional programming ideas that can serve as a stepping stone into the world of functional programming and help mitigate any misunderstandings you may have had regarding these concepts:

  • Composition, complexity & pipes
  • Pure functions & referential transparency
  • Immutability, assignment & binding
  • First class functions, higher order functions, currying & partial application
  • Recursion
  • Reimagining solutions in functional design

The article has plenty links to further reading. Very insightful!

[Read More]

Tags programming functional-programming how-to software-architecture