Church encoding
E588094
Church encoding is a means of representing data and operators in the lambda calculus using only functions, forming the theoretical basis for functional programming representations of numbers, booleans, and data structures.
Statements (49)
| Predicate | Object |
|---|---|
| instanceOf |
concept in lambda calculus
ⓘ
representation scheme ⓘ technique in theoretical computer science ⓘ |
| appliedIn | proofs of expressiveness of lambda calculus ⓘ |
| assumes | pure lambda calculus setting ⓘ |
| basisFor |
functional representations of booleans
ⓘ
functional representations of data structures ⓘ functional representations of numbers ⓘ |
| contrastedWith |
Scott encoding
ⓘ
direct machine-level data representations ⓘ |
| example |
Church boolean
ⓘ
Church numeral ⓘ encoded list ⓘ encoded pair ⓘ |
| field |
functional programming
ⓘ
lambda calculus ⓘ theoretical computer science ⓘ |
| goal | represent all computable data using functions alone ⓘ |
| historicalContext |
developed in the context of foundations of mathematics
ⓘ
introduced in early 20th century ⓘ |
| influenced |
design of functional programming languages
ⓘ
theory of data representation in lambda calculus ⓘ |
| namedAfter | Alonzo Church NERFINISHED ⓘ |
| property |
data and control unified as functions
ⓘ
extensional representation of data ⓘ no primitive data types required ⓘ uses only functions ⓘ |
| relatedTo |
Boehm–Berarducci encoding
NERFINISHED
ⓘ
Curry–Howard correspondence NERFINISHED ⓘ Scott encoding ⓘ System F NERFINISHED ⓘ combinatory logic ⓘ functional programming languages ⓘ lambda calculus ⓘ typed lambda calculus ⓘ |
| represents |
algebraic data types
ⓘ
booleans ⓘ data as functions ⓘ lists ⓘ natural numbers ⓘ operators as functions ⓘ pairs ⓘ tuples ⓘ |
| supports |
definition of arithmetic operations
ⓘ
definition of logical operations ⓘ definition of recursion via fixed-point combinators ⓘ |
| uses |
beta reduction
ⓘ
higher-order functions ⓘ lambda abstractions ⓘ |
Referenced by (2)
Full triples — surface form annotated when it differs from this entity's canonical label.