Functional programming #

Functional programming is a programming paradigm which relies on constructing and applying functions. It is usually contrasted with object-oriented programming, where “classes” or “objects” are the “first-class” citizens of the language. Some examples of programming languages specifically designed with the functional paradigm in mind are

  • Lisp (and Scheme, Clojure)
  • Haskell
  • OCaml
  • F#

Ideas from functional programming can be used in most general-purpose languages.

Resources #

  • pytoolz: A functional standard library for Python.
  • Wikipedia article on Monads, a weird concept from functional programming I’m trying to get my head around (they seem to be at least historically motivated by the object from category theory with the same name, not sure that in day-to-day usage there is really much in common though).