{
  "schema_version": "1.0",
  "codex": "thecodex.expert/coding",
  "type": "paradigm",
  "slug": "paradigms/functional",
  "name": "Functional Programming",
  "section": "Paradigms",
  "canonical_definition": "Functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions, emphasising pure functions that produce no side effects, immutable data that cannot be modified after creation, and function composition as the primary mechanism for building programs, rooted in Alonzo Church's lambda calculus (1936).",
  "confidence": "high",
  "last_verified": "2026-06-01",
  "source_count": 5,
  "url": "https://thecodex.expert/coding/paradigms/functional/",
  "paradigm_type": "declarative",
  "unit_of_composition": "pure function",
  "state_model": "immutable / explicit effects via monads",
  "formal_basis": "lambda calculus (Church, 1936)",
  "primary_languages": [
    "Haskell",
    "Erlang",
    "Clojure",
    "F#",
    "Elm",
    "Elixir"
  ],
  "multi_paradigm_with_fp": [
    "Python",
    "JavaScript",
    "Rust",
    "Kotlin",
    "Scala",
    "Swift"
  ],
  "concept_relationship": {
    "requires_first": [
      "concepts/functions",
      "how-languages-work/type-systems"
    ],
    "enables": [
      "concepts/closures",
      "concepts/immutability",
      "concepts/side-effects",
      "languages/haskell"
    ],
    "commonly_confused_with": [
      "using map/filter (tools, not the paradigm itself)"
    ]
  },
  "sources": [
    {
      "num": 1,
      "citation": "Church, A. (1936). An unsolvable problem of elementary number theory. American Journal of Mathematics 58(2), 345-363.",
      "tier": 1
    },
    {
      "num": 2,
      "citation": "Hughes, J. (1989). Why functional programming matters. The Computer Journal 32(2), 98-107.",
      "tier": 1
    },
    {
      "num": 3,
      "citation": "Wadler, P. (1992). The essence of functional programming. POPL '92. ACM.",
      "tier": 1
    },
    {
      "num": 4,
      "citation": "Marlow, S. (ed.) (2010). Haskell 2010 Language Report. haskell.org.",
      "tier": 1
    },
    {
      "num": 5,
      "citation": "Bird, R. & Wadler, P. (1988). Introduction to Functional Programming. Prentice Hall.",
      "tier": 1
    }
  ]
}