Jesienią rozpoczynam licencjat z informatyki, ale tak naprawdę nie rozumiem rachunku λ w kontekście programowania funkcjonalnego. Być może całkowicie błędnie to interpretuję, ale w oparciu o tę definicję z Encyklopedii Filozoficznej Stanforda jest to kolejna notacja funkcji.
Jeśli to jest właśnie to, dlaczego jest korzystne stosowanie λ nazębnego nad regularnych zapisów funkcyjnych algorytm do obliczania czasu pracy?
Odpowiedzi:
W informatyce chcemy analizować i rozumieć kod źródłowy z matematyczną dyscypliną. To jedyny sposób na udowodnienie interesujących właściwości (takich jak zakończenie) z absolutną pewnością. W tym celu potrzebujemy języka o bardzo dobrze zdefiniowanym znaczeniu dla każdej konstrukcji.
źródło
istnieje wiele zalet korzystania z Lisp lub programowania funkcjonalnego, a obliczanie czasu działania algorytmu jest tylko jedną z możliwości (chociaż byłoby pomocne, gdyby zacytowano za to referencję). ponieważ jest już w notacji funkcjonalnej, czasami określając formuły dla czasu wykonywania za pomocą relacji indukcyjnych lub rekurencyjnych, może mieć silniejszy lub bardziej oczywisty związek z pierwotnym kodem. inne rodzaje analizy algorytmu są również uproszczone.
kolejną główną zaletą jest prostota syntaktyczna. parsery dla innych języków są bardzo złożone, ale parsery Lisp są bardzo proste. więc Lisp jest świetnym językiem do nauki teorii parsowania.
innym kluczowym aspektem jest bardziej analiza oprogramowania z logicznego lub matematycznego obiektywu / widoku niż z perspektywy „komputerowo-naukowej”.
jak wskazuje druga odpowiedź, Lisp polega na rekurencji zamiast iteracji, a rekurencja jest w centrum CS.
[1] Struktura i interpretacja programów komputerowych, autor: Abelson i Sussman
źródło