Liczebniki Churcha

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ą.

 W ten sposób, zeru przyporządkowuje x, jedynce f(x), dwójce (f o f) (x) = f(f(x)) itd. Przyporządkowanie takie zapisuje się następująco: fn(x) (w rachunku lambda: n=λf.λx.fn x), gdzie n jest liczbą naturalną.

 Funkcja liczebnika Churcha przyjmuje dwa parametry - funkcję i liczbę naturalną, określającą krotność złożenia wspomnianej funkcji z samą sobą.

 
Przykład
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.

 

 

Made by Michał Okrzesik. Strona jest projektem na laboratoria z Logiki Matematycznej w Informatyce i nie będzie rozwijana. Z materiałów zamieszczonych można korzystać na prawach Creative Commons.
© 2013-2024 PRV.pl
Strona została stworzona kreatorem stron w serwisie PRV.pl