Mam coś, co nazwałbym filozoficznym pytaniem o rachunek λ.
Podczas eksploracji rachunku λ będziesz zaskoczony, widząc wszystkie rzeczy, które możesz tam zrobić. Możesz zdefiniować liczby całkowite, operacje arytmetyczne, booleany, instrukcje if-then-else, pętle, funkcje rekurencyjne itp. Uważam, że zostało ono obliczone jako kompletne.
Ale z drugiej strony, jeśli weźmiesz pod uwagę, co możesz zrobić z funkcjami w rachunku λ, zdajesz sobie sprawę, że jedyne, co możesz zrobić, to nakarmić ją funkcją i zwraca ona inną funkcję. I ten proces nigdy się nie kończy.
Jak więc wyodrębnić wynik z obliczeń?
Załóżmy, że wynikiem wyrażenia jest funkcja f
. Chcesz sprawdzić, czy f
tego się spodziewałeś. Możesz to przetestować, skorzystać z funkcji, którą znasz, zastosować się f
do niej i otrzymać g
. Ale aby g
to sprawdzić , musisz teraz sprawdzić, co g
robi. I zaczynasz wszystko od nowa. Więc jak możesz coś powiedzieć f
?
Wydaje mi się, że można zastąpić wszystkie funkcje w rachunku λ pojedynczą funkcją, funkcją tożsamości I = λx.x
i wszystko nadal działa tak, jak opisano w rachunku λ. Liczebnik Kościoła, 3
gdy jest dany f
i x
wraca f(f(f(x)))
. Ale ponieważ f
i x
może być tylko I
, powraca I
. I
stosowane I
i I
również zwraca I
. I
Spełnia więc definicję 3
. W „wartości logiczne” (λxy.x)
i (λxy.y)
potrzebuje 2 argumenty, które będą I
i I
tak obie wartości logiczne powróci I
. Każda z nich jest równoważna z tożsamością, mimo że zachowują się dokładnie zgodnie z ich definicjami.
Jak więc różnicę? Jak wykazujesz, że rachunek λ dotyczy więcej niż jednej funkcji?
Czy istnieje koncepcja tożsamości? Czy potrafisz natychmiast zidentyfikować funkcję bez jej oceny? Wierzę, że udowodniono, że nie ma możliwości przetestowania 2 funkcji pod kątem równości.
A może rachunek λ nie dotyczy funkcji, ale formalnego opisu ich działania? Oznaczałoby to, że wyrażenia λ nie tylko definiują działanie funkcji, ale także dane, którymi manipulują te funkcje. Więc kiedy piszesz A B
, nie stosuje A
się B
, ale trzeba zastosować funkcja opisana przez struny A
do formalnej definicji funkcji zawartych w B
powrocie inną formalną definicję.
Co tak naprawdę dzieje się w rachunku λ? Z jakimi przedmiotami matematycznymi ma do czynienia?
Kontynuacja:
OK, z poniższej odpowiedzi wynika, że rachunek λ nie tyle dotyczy funkcji w sensie matematycznym, ale podzbioru funkcji, które można wyrazić jako wyrażenia λ. Lub nawet więcej o manipulowaniu wyrażeniami λ.