Functional Glossary

Browse 32 functional terms defined in plain English, from the cultural dictionary of computing.

32 Functional Terms

Algebraic Data Type
A composite type formed by combining other types using sum (OR — one of several variants) and product (AND — a combination of fields). Sum types (tagged...
Algebraic Effects
A programming language feature where functions can 'perform' effects (I/O, exceptions, async, state) and a handler higher up the call stack decides how to...
Applicative Functor
A type class between Functor and Monad that allows applying a function inside a context to a value inside a context. Enables combining multiple independent...
Clojure
A modern Lisp dialect that runs on the JVM, emphasizing immutable data structures, functional programming, and a pragmatic approach to concurrency. Clojure's...
Continuation
An abstract representation of 'the rest of the computation' at any given point in a program. First-class continuations (call/cc in Scheme) allow capturing and...
Discriminated Union
A union type where each member has a common literal property (the discriminant) that allows the type checker to narrow which variant is in use. Also called a...
Effect System
A type-level mechanism that tracks and controls the side effects a function may perform — such as I/O, exceptions, or state mutation. Languages like Koka,...
Effect System
A type system extension that tracks computational side effects (I/O, exceptions, state mutation, async) in function signatures. The compiler enforces that...
Elixir
A functional, concurrent programming language built on the Erlang VM (BEAM) designed for building scalable, fault-tolerant applications. Elixir combines...
Erlang
A functional programming language designed for building massively concurrent, fault-tolerant telecom systems. Erlang's 'let it crash' philosophy and...
F#
A functional-first language on the .NET platform that brings ML-family language features to the Microsoft ecosystem. F# offers type providers for typed access...
Haskell
A purely functional programming language with strong static typing, lazy evaluation, and a sophisticated type system including type classes and monads. Haskell...
Lens
A composable pair of getter/setter functions for focusing on a specific part of an immutable data structure. Lenses can be composed to access deeply nested...
Lisp
The second-oldest high-level programming language, pioneering many foundational concepts including tree data structures, automatic garbage collection, dynamic...
Memoization
An optimization technique that caches the results of expensive function calls and returns the cached result when the same inputs occur again. Only works for...
OCaml
A multi-paradigm language from the ML family featuring a powerful type inference system, pattern matching, and a native code compiler that produces fast...
Option Type
A type that represents a value that may or may not exist, used to safely handle the absence of data without resorting to null references. Common variants...
Partial Application
Fixing some arguments of a function to produce a new function with fewer parameters. Unlike currying (which transforms f(a,b,c) into f(a)(b)(c)), partial...
Pattern Guard
Pattern Guard is a control flow construct found in functional programming languages that adds boolean conditions to pattern matching clauses. While a basic...
Pattern Matching
A language feature that checks a value against a series of patterns and destructures it in the process, combining conditional logic and data extraction in one...
Pipe Operator
A language operator (|> in Elixir, F#, and others) that passes the result of the left expression as the first argument to the function on the right. Enables...
Predicate
A function that takes an input and returns a boolean (true/false). Used extensively in filtering, searching, and conditional logic. In SQL it is the WHERE...
Proc
In Ruby, a Proc (short for procedure) is an object that encapsulates a block of code, which can be stored in a variable, passed to methods, and called later....
Pure Function
A function that always returns the same output for the same input and has no side effects — it does not modify external state, perform I/O, or depend on...
Reduction
The process of combining a collection of values into a single result by repeatedly applying a function. Also called fold or aggregate. Array.reduce() in...
Referential Transparency
A property of expressions where they can be replaced with their value without changing program behavior. A function is referentially transparent if calling it...
ReScript
A strongly-typed functional programming language that compiles to readable JavaScript, originally forked from ReasonML, emphasizing fast compilation and a...
Scala
A JVM language that fuses object-oriented and functional programming with a powerful type system. Scala gained prominence as the language behind Apache Spark...
Scheme
A minimalist dialect of Lisp designed for teaching and research, emphasizing lexical scoping, first-class continuations, and tail-call optimization. Scheme is...
S-Expression
A notation for nested list-structured data originating from Lisp, where expressions are written as parenthesized prefix lists such as (+ 1 2), serving as both...
Tail Call
A function call that occurs as the last action of a function, allowing the compiler to reuse the current stack frame instead of allocating a new one. Enables...
Type Class
A Haskell construct that defines a set of functions that can be implemented for different types, enabling ad-hoc polymorphism. Similar to traits or interfaces...

Related Topics