Właśnie czytam rachunek lambda, żeby go „poznać”. Widzę to jako alternatywną formę obliczeń w przeciwieństwie do maszyny Turinga. Jest to interesujący sposób robienia rzeczy z funkcjami / redukcjami (z grubsza mówiąc). Niektóre pytania wciąż mnie dręczą:
- Jaki jest sens rachunku lambda? Po co przechodzić przez te wszystkie funkcje / ograniczenia? Co jest celem?
- W rezultacie zastanawiam się: co dokładnie zrobił rachunek lambda, aby rozwinąć teorię CS? Jakie były jej wkłady, które pozwoliłyby mi na chwilę „aha” zrozumienia potrzeby jego istnienia?
- Dlaczego rachunek lambda nie jest ujęty w tekstach dotyczących teorii automatów? Wspólną drogą jest przejście przez różne automaty, gramatyki, maszyny Turinga i klasy złożoności. Rachunek Lambda jest zawarty jedynie w sylabusie dla kursów w stylu SICP (być może nie?). Ale rzadko widziałem, aby była to część podstawy CS. Czy to oznacza, że nie jest to aż tak cenne? Może nie, a może coś mi brakuje?
Zdaję sobie sprawę, że funkcjonalne języki programowania są oparte na rachunku lambda, ale nie uważam tego za ważny wkład, ponieważ został on utworzony na długo przed pojawieniem się języków programowania. Tak więc, po co sens poznania / zrozumienia rachunku lambda, jego zastosowania / wkładu w teorię?
Functional Programming
omówienie Haskell i trochę Lisp. Następcą tego było Principles of Programming Languages
użycie ML i wprowadzenie rachunku lambda. Jak pokazują niektóre odpowiedzi, tak naprawdę należy do rachunku lambda: w klasie o językach programowania, pisaniu itp.