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

  • Elixir
  • Erlang
  • F#
  • Haskell
  • lisps (Common Lisp, emacs lisp, Scheme, Clojure)
  • ML
  • OCaml

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

  • 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).
  • The Dao of functional progamming by Bartosz Milewski.
  • A nice list of simple explanations of common terms in functional programming.