Liczebniki Churcha to reprezentacja liczb naturalnych w kodowaniu Churcha. Są to funkcje wyższego rzędu, a więc przyjmujące za parametr inne funkcje, które liczbie naturalnej n przyporządkowują n-krotne złożenie funkcji z nią samą.
Funkcja liczebnika Churcha przyjmuje dwa parametry - funkcję i liczbę naturalną, określającą krotność złożenia wspomnianej funkcji z samą sobą.
int f1(int a);
typedef int ( * function )(int); int ChurchNumeral ( function f , int n ); int a; int main(){
int n;
int A=ChurchNumeral(f1,n);
}
int f1(int a){
//funkcja f1
}
int ChurchNumeral(function f, int n){
for(int i=0; i<n; i++) a=f(a);
return a; }
|
Na liczebnikach Churcha można normalnie wykonywać działania arytmetyczne,
takie jak dodawanie, odejmowanie, mnożenie, czy potęgowanie. Dodatkowo istnieje funkcja przeciwna, zwracająca liczbę naturalną z liczebnika Churcha.