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
- Language (10 terms in common)
- Theory (5 terms in common)
- Type System (5 terms in common)
- Syntax (3 terms in common)
- Control Flow (3 terms in common)
- Academic (3 terms in common)
- Lisp (3 terms in common)
- Concurrency (2 terms in common)
- Jvm (2 terms in common)
- Type Theory (2 terms in common)
- Optimization (2 terms in common)
- Haskell (2 terms in common)
- Javascript (1 terms in common)
- Ruby (1 terms in common)
- Microsoft (1 terms in common)
- Pattern (1 terms in common)
- Dotnet (1 terms in common)
- Telecom (1 terms in common)
- Safety (1 terms in common)
- Fault Tolerant (1 terms in common)