Functional programming


Topic | v1 | created by jjones |
Description

In computer science, functional programming is a programming paradigm where programs are constructed by applying and composing functions. It is a declarative programming paradigm in which function definitions are trees of expressions that each return a value, rather than a sequence of imperative statements which change the state of the program. In functional programming, functions are treated as first-class citizens, meaning that they can be bound to names (including local identifiers), passed as arguments, and returned from other functions, just as any other data type can. This allows programs to be written in a declarative and composable style, where small functions are combined in a modular manner. Functional programming is sometimes treated as synonymous with purely functional programming, a subset of functional programming which treats all functions as deterministic mathematical functions, or pure functions.


Relations

subtopic of Programming language

A programming language is a formal language comprising a set of instructions that produce various kin...

uses F#

F# (pronounced F sharp) is a functional-first, general purpose, strongly typed, multi-paradigm progra...

parent of Lisp

Lisp (historically LISP) is a family of programming languages with a long history and a distinctive,...

parent of Monad

In functional programming, a monad is an abstraction that allows structuring programs generically. Su...

uses Unison

Unison is an open source functional programming language based on a simple idea with big implications...

parent of Algebraic effects

Algebraic effects are an approach to computational effects based on a premise that impure behaviour a...


Edit details Edit relations Attach new author Attach new topic Attach new resource
Resources

treated in Data-first and data-last: a comparison

10.0 rating 5.0 level 9.0 clarity 3.0 background – 1 rating

In this article, we will: 1. Present what data-last is, and why functional languages have been using...