Church Integer

A Church integer is a representation of natural numbers as functions, invented by Alonzo Church as part of his lambda calculus. The natural number n is represented as a higher-order function, which takes a function f as argument and returns the n-fold composition f o f o ... o f as result. For example, in Haskell, a function that returns a particular Church integer might be
  church 0 = \ f x -> x  church n = c    where      c f x = c' f (f x)        where          c' = church (n - 1)  
The transformation from a Church integer to an integer might be
  unchurch n = n (+1) 0 
Thus the (+1) function would be applied to an initial value of 0 n times, yielding the ordinary integer n. In Scheme, one simple expression of the Church integers is as follows:
  (define zero (lambda (x) (lambda (f) x)))  (define one  (lambda (x) (lambda (f) (f x))))  (define two  (lambda (x) (lambda (f) (f (f x)))))  (define three (lambda (x) (lambda (f) (f (f (f x)))))) 
This set of numbers can be transformed to integers as follows:
  (define add1 (lambda (x) (+ 1 x)))  (define unchurch (lambda (c) ((c 0) add1))) 
Then (unchurch two) returns the value 2 There are other mappings--the church integers will map onto anything countable. Here is a mapping onto powers of 2.
  (define times2 (lambda (x) (* 2 x)))  (define unchurchpoweroftwo (lambda (c) ((c 1) times2))) 
Then (unchurchpoweroftwo three) returns 8, the third power of 2.

See also

External links

 

<< PreviousWord BrowserNext >>
the young ones
turing tarpit
xenu
maoism
dow
dow jones & company
world council of churches
nicholas i of russia
grep
enrico berlinguer
four cardinal principles
buttock
radio telescope
parsley, sage, rosemary and thyme
the graduate (soundtrack)
list of operettas
bookends
the pirates of penzance
concert in central park by simon and garfunkel
constantine viii
history of wales
battle of tours
xylem
banach fixed point theorem
die fledermaus
entropy encoding
amalfi
anne of great britain
charles ii of england
saracen
sherman antitrust act
john sherman
machaerid
halkeria
property damage
electoral fusion
cork (disambiguation)
bodily harm
consumer broadband and digital television promotion act
cork
list of senators and representatives of ohio
county cork
fort ticonderoga
william tecumseh sherman