Jestem studentem uniwersytetu i obecnie studiujemy rachunek Lambda Calculus. Nadal jednak trudno mi zrozumieć, dlaczego jest to dla mnie przydatne. Zdaję sobie sprawę, że jeśli wykonujesz mnóstwo programowania funkcjonalnego, może to być przydatne, ale uważam, że tak naprawdę nie jest ono potrzebne do nauki programowania funkcjonalnego, co myślisz?
Po drugie, czy Lambda Calculus ma jakieś zastosowanie w dziedzinie informatyki, ale poza funkcjonalnymi językami programowania?
Pytasz o aplikację poza informatyką i logiką. Można to łatwo znaleźć, na przykład w topologii algebraicznej wygodnie jest mieć zamkniętą kategorię przestrzeni kartezjańskich, patrz wygodna kategoria przestrzeni topologicznych na nLab. Formalnym językiem odpowiadającym kartezjańskim kategoriom zamkniętym jest właśnie rachunek. Pozwól, że zilustruję bardzo prostym przykładem, jak to się przydaje.λ
Najpierw załóżmy, że ktoś pyta cię, czy funkcja zdefiniowana przez f ( x ) = x 2 e x + log ( 1 + x 2 ) jest różniczkowalna. W rzeczywistości nie musisz tego potwierdzać, po prostu zauważasz, że jest to skład funkcji różniczkowalnych, a zatem różniczkowalnych. Innymi słowy, wyciągnąłeś łatwy wniosek na podstawie formy definicji.fa: R → R fa( x ) = x2)mix+ log( 1 + x2))
Teraz prawdziwy przykład. Załóżmy, że ktoś pyta cię, czy funkcja zdefiniowana przez f ( x ) = ( λ f : C ( R ) . ∫fa: R → R
Różne rozszerzenia kalkulatora umożliwiają robienie tego samego w innych obszarach. Na przykład, ponieważ gładki topos jest kartezjańską kategorią zamkniętą, każda mapa, która jest zdefiniowana za pomocą λ- rachunku, zaczynając od pochodnych i struktury pierścieniowej reali (i możesz wrzucić funkcję wykładniczą, jeśli chcesz) jest automatycznie gładka . (W rzeczywistości głównym celem gładkiego toposu jest istnienie nilpotentnych nieskończoności, które pozwalają w znaczący sposób powiedzieć rzeczy takie jak „rozcinamy dysk na nieskończenie cienkie trójkąty równoramienne”.)λ λ
źródło
źródło
źródło
Nie wiedząc o tym więcej, słyszę, że językoznawcy używają rachunku lambda.
http://www.sfu.ca/~jeffpell/Ling406/LambdaAbstractionOH.pdf , https://files.nyu.edu/cb125/public/Lambda/
źródło