91 relations: Abstract rewriting machine, Algebraic data type, Assignment (computer science), AutoLISP, B, C, K, W system, Bisimulation, Brouwer–Heyting–Kolmogorov interpretation, Calculus of constructions, Cartesian closed category, Church encoding, Church–Rosser theorem, Clean (programming language), Clojure, Closure (computer programming), Common Lisp, Complete partial order, Continuation, Continuation-passing style, Curry–Howard correspondence, Currying, Data type, Declarative programming, Domain theory, Eager evaluation, Elixir (programming language), Emacs Lisp, Erlang (programming language), Exception handling, Extensionality, F Sharp (programming language), First-class citizen, Fixed-point combinator, FP (programming language), Function-level programming, Functional programming, Game semantics, Garbage collection (computer science), Generalized algebraic data type, Glasgow Haskell Compiler, Gofer (programming language), Graph reduction, Graph reduction machine, Haskell (programming language), Higher-order function, Hugs, Intuitionistic type theory, ISWIM, Ωmega, JavaScript, Kent Recursive Calculator, ..., Knaster–Tarski theorem, Kohut, Lambda calculus, Lazy evaluation, Linear logic, Lisp (programming language), Mercury (programming language), Miranda (programming language), ML (programming language), Monad (functional programming), Natural deduction, OCaml, Operational semantics, Polymorphism (computer science), Programming language, Programming paradigm, Pure (programming language), Purely functional programming, Q (programming language from Kx Systems), Quantum programming, Referential transparency, Scala (programming language), Scheme (programming language), Scope (computer science), SECD machine, Sequent, Sequent calculus, Side effect (computer science), Simulation preorder, SISAL, SKI combinator calculus, Speculative execution, Standard ML, Strict programming language, Template Haskell, Transition system, Type inference, Type signature, Type variable, Typed lambda calculus, Yoneda lemma. Expand index (41 more) »

## Abstract rewriting machine

The Abstract Rewriting Machine (ARM) is a virtual machine which implements term rewriting for minimal term rewriting systems.

New!!: List of functional programming topics and Abstract rewriting machine · See more »

## Algebraic data type

In computer programming, especially functional programming and type theory, an algebraic data type is a kind of composite type, i.e., a type formed by combining other types.

New!!: List of functional programming topics and Algebraic data type · See more »

## Assignment (computer science)

In computer programming, an assignment statement sets and/or re-sets the value stored in the storage location(s) denoted by a variable name; in other words, it copies a value into the variable.

New!!: List of functional programming topics and Assignment (computer science) · See more »

## AutoLISP

AutoLISP is a dialect of the LISP programming language built specifically for use with the full version of AutoCAD and its derivatives, which include AutoCAD Map 3D, AutoCAD Architecture and AutoCAD Mechanical.

New!!: List of functional programming topics and AutoLISP · See more »

## B, C, K, W system

The B, C, K, W system is a variant of combinatory logic that takes as primitive the combinators B, C, K, and W. This system was discovered by Haskell Curry in his doctoral thesis Grundlagen der kombinatorischen Logik, whose results are set out in Curry (1930).

New!!: List of functional programming topics and B, C, K, W system · See more »

## Bisimulation

In theoretical computer science a bisimulation is a binary relation between state transition systems, associating systems that behave in the same way in the sense that one system simulates the other and vice versa.

New!!: List of functional programming topics and Bisimulation · See more »

## Brouwer–Heyting–Kolmogorov interpretation

In mathematical logic, the Brouwer–Heyting–Kolmogorov interpretation, or BHK interpretation, of intuitionistic logic was proposed by L. E. J. Brouwer and Arend Heyting, and independently by Andrey Kolmogorov.

New!!: List of functional programming topics and Brouwer–Heyting–Kolmogorov interpretation · See more »

## Calculus of constructions

In mathematical logic and computer science, the calculus of constructions (CoC) is a type theory created by Thierry Coquand.

New!!: List of functional programming topics and Calculus of constructions · See more »

## Cartesian closed category

In category theory, a category is considered Cartesian closed if, roughly speaking, any morphism defined on a product of two objects can be naturally identified with a morphism defined on one of the factors.

New!!: List of functional programming topics and Cartesian closed category · See more »

## Church encoding

In mathematics, Church encoding is a means of representing data and operators in the lambda calculus.

New!!: List of functional programming topics and Church encoding · See more »

## Church–Rosser theorem

In mathematics and theoretical computer science, the Church–Rosser theorem states that, when applying reduction rules to terms in the lambda calculus, the ordering in which the reductions are chosen does not make a difference to the eventual result.

New!!: List of functional programming topics and Church–Rosser theorem · See more »

## Clean (programming language)

Clean is a general-purpose purely functional computer programming language.

New!!: List of functional programming topics and Clean (programming language) · See more »

## Clojure

Clojure (like "closure") is a dialect of the Lisp programming language.

New!!: List of functional programming topics and Clojure · See more »

## Closure (computer programming)

In programming languages, a closure (also lexical closure or function closure) is a technique for implementing lexically scoped name binding in a language with first-class functions.

New!!: List of functional programming topics and Closure (computer programming) · See more »

## Common Lisp

Common Lisp (CL) is a dialect of the Lisp programming language, published in ANSI standard document ANSI INCITS 226-1994 (R2004) (formerly X3.226-1994 (R1999)).

New!!: List of functional programming topics and Common Lisp · See more »

## Complete partial order

In mathematics, the phrase complete partial order is variously used to refer to at least three similar, but distinct, classes of partially ordered sets, characterized by particular completeness properties.

New!!: List of functional programming topics and Complete partial order · See more »

## Continuation

In computer science and computer programming, a continuation is an abstract representation of the control state of a computer program.

New!!: List of functional programming topics and Continuation · See more »

## Continuation-passing style

In functional programming, continuation-passing style (CPS) is a style of programming in which control is passed explicitly in the form of a continuation.

New!!: List of functional programming topics and Continuation-passing style · See more »

## Curry–Howard correspondence

In programming language theory and proof theory, the Curry–Howard correspondence (also known as the Curry–Howard isomorphism or equivalence, or the proofs-as-programs and propositions- or formulae-as-types interpretation) is the direct relationship between computer programs and mathematical proofs.

New!!: List of functional programming topics and Curry–Howard correspondence · See more »

## Currying

In mathematics and computer science, currying is the technique of translating the evaluation of a function that takes multiple arguments (or a tuple of arguments) into evaluating a sequence of functions, each with a single argument.

New!!: List of functional programming topics and Currying · See more »

## Data type

In computer science and computer programming, a data type or simply type is a classification of data which tells the compiler or interpreter how the programmer intends to use the data.

New!!: List of functional programming topics and Data type · See more »

## Declarative programming

In computer science, declarative programming is a programming paradigm—a style of building the structure and elements of computer programs—that expresses the logic of a computation without describing its control flow.

New!!: List of functional programming topics and Declarative programming · See more »

## Domain theory

Domain theory is a branch of mathematics that studies special kinds of partially ordered sets (posets) commonly called domains.

New!!: List of functional programming topics and Domain theory · See more »

## Eager evaluation

In computer programming, eager evaluation, also known as strict evaluation or greedy evaluation, is the evaluation strategy used by most traditional programming languages.

New!!: List of functional programming topics and Eager evaluation · See more »

## Elixir (programming language)

Elixir is a functional, concurrent, general-purpose programming language that runs on the Erlang virtual machine (BEAM).

New!!: List of functional programming topics and Elixir (programming language) · See more »

## Emacs Lisp

Emacs Lisp is a dialect of the Lisp programming language used as a scripting language by Emacs (a text editor family most commonly associated with GNU Emacs and XEmacs).

New!!: List of functional programming topics and Emacs Lisp · See more »

## Erlang (programming language)

Erlang is a general-purpose, concurrent, functional programming language, as well as a garbage-collected runtime system.

New!!: List of functional programming topics and Erlang (programming language) · See more »

## Exception handling

Exception handling is the process of responding to the occurrence, during computation, of exceptions – anomalous or exceptional conditions requiring special processing – often changing the normal flow of program execution.

New!!: List of functional programming topics and Exception handling · See more »

## Extensionality

In logic, extensionality, or extensional equality, refers to principles that judge objects to be equal if they have the same external properties.

New!!: List of functional programming topics and Extensionality · See more »

## F Sharp (programming language)

F# (pronounced F sharp) is a strongly typed, multi-paradigm programming language that encompasses functional, imperative, and object-oriented programming methods.

New!!: List of functional programming topics and F Sharp (programming language) · See more »

## First-class citizen

In programming language design, a first-class citizen (also type, object, entity, or value) in a given programming language is an entity which supports all the operations generally available to other entities.

New!!: List of functional programming topics and First-class citizen · See more »

## Fixed-point combinator

In computer science's combinatory logic, a fixed-point combinator (or fixpoint combinator) is a higher-order function fix that, for any function f that has an attractive fixed point, returns a fixed point x of that function.

New!!: List of functional programming topics and Fixed-point combinator · See more »

## FP (programming language)

FP (short for Function Programming) is a programming language created by John Backus to support the function-level programming Backus' 1977 Turing Award lecture paradigm.

New!!: List of functional programming topics and FP (programming language) · See more »

## Function-level programming

In computer science, function-level programming refers to one of the two contrasting programming paradigms identified by John Backus in his work on programs as mathematical objects, the other being value-level programming.

New!!: List of functional programming topics and Function-level programming · See more »

## Functional programming

In computer science, functional programming is a programming paradigm—a style of building the structure and elements of computer programs—that treats computation as the evaluation of mathematical functions and avoids changing-state and mutable data.

New!!: List of functional programming topics and Functional programming · See more »

## Game semantics

Game semantics (dialogische Logik, translated as dialogical logic) is an approach to formal semantics that grounds the concepts of truth or validity on game-theoretic concepts, such as the existence of a winning strategy for a player, somewhat resembling Socratic dialogues or medieval theory of Obligationes.

New!!: List of functional programming topics and Game semantics · See more »

## Garbage collection (computer science)

In computer science, garbage collection (GC) is a form of automatic memory management.

New!!: List of functional programming topics and Garbage collection (computer science) · See more »

## Generalized algebraic data type

In functional programming, a generalized algebraic data type (GADT, also first-class phantom type, guarded recursive datatype, or equality-qualified type) is a generalization of parametric algebraic data types.

New!!: List of functional programming topics and Generalized algebraic data type · See more »

## Glasgow Haskell Compiler

Glasgow Haskell Compiler, less commonly known as The Glorious Glasgow Haskell Compilation System or simply GHC, is an open source native code compiler for the functional programming language Haskell.

New!!: List of functional programming topics and Glasgow Haskell Compiler · See more »

## Gofer (programming language)

Gofer ("Good For Equational Reasoning") is an implementation of the programming language Haskell intended for educational purposes and supporting a language based on version 1.2 of the Haskell report.

New!!: List of functional programming topics and Gofer (programming language) · See more »

## Graph reduction

In computer science, graph reduction implements an efficient version of non-strict evaluation, an evaluation strategy where the arguments to a function are not immediately evaluated.

New!!: List of functional programming topics and Graph reduction · See more »

## Graph reduction machine

A graph reduction machine is a special-purpose computer built to perform combinator calculations by graph reduction.

New!!: List of functional programming topics and Graph reduction machine · See more »

## Haskell (programming language)

Haskell is a standardized, general-purpose compiled purely functional programming language, with non-strict semantics and strong static typing.

New!!: List of functional programming topics and Haskell (programming language) · See more »

## Higher-order function

In mathematics and computer science, a higher-order function (also functional, functional form or functor) is a function that does at least one of the following.

New!!: List of functional programming topics and Higher-order function · See more »

## Hugs

Hugs (Haskell User's Gofer System), also Hugs 98, is a bytecode interpreter for the functional programming language Haskell.

New!!: List of functional programming topics and Hugs · See more »

## Intuitionistic type theory

Intuitionistic type theory (also known as constructive type theory, or Martin-Löf type theory) is a type theory and an alternative foundation of mathematics.

New!!: List of functional programming topics and Intuitionistic type theory · See more »

## ISWIM

ISWIM is an abstract computer programming language (or a family of programming languages) devised by Peter J. Landin and first described in his article The Next 700 Programming Languages, published in the Communications of the ACM in 1966.

New!!: List of functional programming topics and ISWIM · See more »

## Ωmega

The Omega interpreter is a strict pure functional programming interpreter similar to the Hugs Haskell interpreter.

New!!: List of functional programming topics and Ωmega · See more »

## JavaScript

JavaScript, often abbreviated as JS, is a high-level, interpreted programming language.

New!!: List of functional programming topics and JavaScript · See more »

## Kent Recursive Calculator

KRC (Kent Recursive Calculator) is a lazy functional language developed by David Turner from November 1979 to October 1981 based on SASL, with pattern matching, guards and ZF expressions (now more usually called list comprehensions).

New!!: List of functional programming topics and Kent Recursive Calculator · See more »

## Knaster–Tarski theorem

In the mathematical areas of order and lattice theory, the Knaster–Tarski theorem, named after Bronisław Knaster and Alfred Tarski, states the following: It was Tarski who stated the result in its most general form, and so the theorem is often known as Tarski's fixed point theorem.

New!!: List of functional programming topics and Knaster–Tarski theorem · See more »

## Kohut

Kohut, Kogut, or Kohout is a surname of Slavic-language origin, meaning rooster.

New!!: List of functional programming topics and Kohut · See more »

## Lambda calculus

Lambda calculus (also written as λ-calculus) is a formal system in mathematical logic for expressing computation based on function abstraction and application using variable binding and substitution.

New!!: List of functional programming topics and Lambda calculus · See more »

## Lazy evaluation

In programming language theory, lazy evaluation, or call-by-need is an evaluation strategy which delays the evaluation of an expression until its value is needed (non-strict evaluation) and which also avoids repeated evaluations (sharing).

New!!: List of functional programming topics and Lazy evaluation · See more »

## Linear logic

Linear logic is a substructural logic proposed by Jean-Yves Girard as a refinement of classical and intuitionistic logic, joining the dualities of the former with many of the constructive properties of the latter.

New!!: List of functional programming topics and Linear logic · See more »

## Lisp (programming language)

Lisp (historically, LISP) is a family of computer programming languages with a long history and a distinctive, fully parenthesized prefix notation.

New!!: List of functional programming topics and Lisp (programming language) · See more »

## Mercury (programming language)

Mercury is a functional logic programming language made for real-world uses.

New!!: List of functional programming topics and Mercury (programming language) · See more »

## Miranda (programming language)

Miranda is a lazy, purely functional programming language designed by David Turner as a successor to his earlier programming languages SASL and KRC, using some concepts from ML and Hope.

New!!: List of functional programming topics and Miranda (programming language) · See more »

## ML (programming language)

ML (Meta Language) is a general-purpose functional programming language.

New!!: List of functional programming topics and ML (programming language) · See more »

## Monad (functional programming)

In functional programming, a monad is a design pattern that defines how functions, actions, inputs, and outputs can be used together to build generic types, with the following organization.

New!!: List of functional programming topics and Monad (functional programming) · See more »

## Natural deduction

In logic and proof theory, natural deduction is a kind of proof calculus in which logical reasoning is expressed by inference rules closely related to the "natural" way of reasoning.

New!!: List of functional programming topics and Natural deduction · See more »

## OCaml

OCaml, originally named Objective Caml, is the main implementation of the programming language Caml, created by Xavier Leroy, Jérôme Vouillon, Damien Doligez, Didier Rémy, Ascánder Suárez and others in 1996.

New!!: List of functional programming topics and OCaml · See more »

## Operational semantics

Operational semantics is a category of formal programming language semantics in which certain desired properties of a program, such as correctness, safety or security, are verified by constructing proofs from logical statements about its execution and procedures, rather than by attaching mathematical meanings to its terms (denotational semantics).

New!!: List of functional programming topics and Operational semantics · See more »

## Polymorphism (computer science)

In programming languages and type theory, polymorphism (from Greek πολύς, polys, "many, much" and μορφή, morphē, "form, shape") is the provision of a single interface to entities of different types.

New!!: List of functional programming topics and Polymorphism (computer science) · See more »

## Programming language

A programming language is a formal language that specifies a set of instructions that can be used to produce various kinds of output.

New!!: List of functional programming topics and Programming language · See more »

## Programming paradigm

Programming paradigms are a way to classify programming languages based on their features.

New!!: List of functional programming topics and Programming paradigm · See more »

## Pure (programming language)

Pure, successor to the equational language Q, is a dynamically typed, functional programming language based on term rewriting.

New!!: List of functional programming topics and Pure (programming language) · See more »

## Purely functional programming

In computer science, purely functional programming usually designates a programming paradigm—a style of building the structure and elements of computer programs—that treats all computation as the evaluation of mathematical functions.

New!!: List of functional programming topics and Purely functional programming · See more »

## Q (programming language from Kx Systems)

Q is a programming language for array processing, developed by Arthur Whitney.

New!!: List of functional programming topics and Q (programming language from Kx Systems) · See more »

## Quantum programming

Quantum programming is the process of assembling sequences of instructions, called quantum programs, that are capable of running on a quantum computer.

New!!: List of functional programming topics and Quantum programming · See more »

## Referential transparency

Referential transparency and referential opacity are properties of parts of computer programs.

New!!: List of functional programming topics and Referential transparency · See more »

## Scala (programming language)

Scala is a general-purpose programming language providing support for functional programming and a strong static type system.

New!!: List of functional programming topics and Scala (programming language) · See more »

## Scheme (programming language)

Scheme is a programming language that supports multiple paradigms, including functional programming and imperative programming, and is one of the two main dialects of Lisp.

New!!: List of functional programming topics and Scheme (programming language) · See more »

## Scope (computer science)

In computer programming, the scope of a name binding – an association of a name to an entity, such as a variable – is the region of a computer program where the binding is valid: where the name can be used to refer to the entity.

New!!: List of functional programming topics and Scope (computer science) · See more »

## SECD machine

The SECD machine is a highly influential (See: #Landin's contribution) virtual machine and abstract machine intended as a target for functional programming language compilers.

New!!: List of functional programming topics and SECD machine · See more »

## Sequent

In mathematical logic, a sequent is a very general kind of conditional assertion.

New!!: List of functional programming topics and Sequent · See more »

## Sequent calculus

Sequent calculus is, in essence, a style of formal logical argumentation where every line of a proof is a conditional tautology (called a sequent by Gerhard Gentzen) instead of an unconditional tautology.

New!!: List of functional programming topics and Sequent calculus · See more »

## Side effect (computer science)

In computer science, a function or expression is said to have a side effect if it modifies some state outside its scope or has an observable interaction with its calling functions or the outside world besides returning a value.

New!!: List of functional programming topics and Side effect (computer science) · See more »

## Simulation preorder

In theoretical computer science a simulation preorder is a relation between state transition systems associating systems which behave in the same way in the sense that one system simulates the other.

New!!: List of functional programming topics and Simulation preorder · See more »

## SISAL

SISAL ("Streams and Iteration in a Single Assignment Language") is a general-purpose single assignment functional programming language with strict semantics, implicit parallelism, and efficient array handling.

New!!: List of functional programming topics and SISAL · See more »

## SKI combinator calculus

The SKI combinator calculus is a combinatory logic, a computational system that may be perceived as a reduced version of the untyped lambda calculus.

New!!: List of functional programming topics and SKI combinator calculus · See more »

## Speculative execution

Speculative execution is an optimization technique where a computer system performs some task that may not be needed.

New!!: List of functional programming topics and Speculative execution · See more »

## Standard ML

Standard ML (SML; "Standard Meta Language") is a general-purpose, modular, functional programming language with compile-time type checking and type inference.

New!!: List of functional programming topics and Standard ML · See more »

## Strict programming language

A strict programming language is a programming language which employs a strict programming paradigm, allowing only strict functions (functions whose parameters must be evaluated completely before they may be called) may be defined by the user.

New!!: List of functional programming topics and Strict programming language · See more »

## Template Haskell

Template Haskell is an experimental language extension to the Haskell programming language implemented in the Glasgow Haskell Compiler (version 6 and later).

New!!: List of functional programming topics and Template Haskell · See more »

## Transition system

In theoretical computer science, a transition system is a concept used in the study of computation.

New!!: List of functional programming topics and Transition system · See more »

## Type inference

Type inference refers to the automatic detection of the data type of an expression in a programming language.

New!!: List of functional programming topics and Type inference · See more »

## Type signature

In computer science, a type signature or type annotation defines the inputs and outputs for a function, subroutine or method.

New!!: List of functional programming topics and Type signature · See more »

## Type variable

In type theory and programming languages, a type variable is a mathematical variable ranging over types.

New!!: List of functional programming topics and Type variable · See more »

## Typed lambda calculus

A typed lambda calculus is a typed formalism that uses the lambda-symbol (\lambda) to denote anonymous function abstraction.

New!!: List of functional programming topics and Typed lambda calculus · See more »

## Yoneda lemma

In mathematics, specifically in category theory, the Yoneda lemma is an abstract result on functors of the type morphisms into a fixed object.

New!!: List of functional programming topics and Yoneda lemma · See more »

## Redirects here:

Outline of functional programming.

## References

[1] https://en.wikipedia.org/wiki/List_of_functional_programming_topics