Próbowałem nauczyć się programowania funkcjonalnego i większość samouczków wykorzystuję matematykę jako przykłady bardziej skomplikowanych konstrukcji (nawet prostych w niektórych przypadkach). Dlaczego to? Wyobrażam sobie, że można użyć czegoś łatwiejszego. To utrudnia naukę.
Informacje podstawowe: Piszę oprogramowanie od 12 lat. Rozumiem niektóre pojęcia, takie jak zamknięcia, funkcje obywateli pierwszej klasy i leki generyczne. Być może mam problemy z funkcjami wyższego rzędu na pewnym poziomie zaawansowanym, ale chciałbym wierzyć, że mam podstawową wiedzę. Monady gryzą mnie w tyłek iw tym momencie jeszcze tego nie przeszedłem (jestem pewien, że w końcu to zrobię, ponieważ jestem wytrwały).
functional-programming
math
Charles Lambert
źródło
źródło
Odpowiedzi:
Używają matematyki, ponieważ Programowanie Funkcjonalne jest bardzo dobre w modelowaniu konstrukcji matematycznych i jest ściśle powiązane z pojęciami matematycznymi, szczególnie Rachunkiem Lambda. Również, ponieważ I / O jest zazwyczaj dość drażliwym i zaawansowanym przedmiotem w wielu językach funkcjonalnej matematyki paradygmatu poprzez REPL różnych języków, na początku staje się dobrym sposobem nauczania języka.
Ponieważ funkcjonalne traktuje Programowanie funkcjonuje jako konstrukty pierwszych klas w obrębie języka programowania, funkcja pokolenie staje się bardzo ważne. Dlatego wyższa matematyka staje się dość ważna, szczególnie teoria grafów.
Języki imperatywne są tak samo matematyczne, ale u podstaw wszystko jest arytmetyczne, ponieważ są bliżej maszyny, którą i tak można dodać. Języki funkcjonalne z ich wyższej abstrakcji wydają się bardziej ku matematyce. Powszechne stosowanie w środowisku akademickim nie pomaga, gdyż w ten sposób przyzwyczaić i prowadzone przez ludzi, którzy wiedzą dużo matematyki i uczenie ludzi, którzy oczekują, aby dowiedzieć się dużo matematyki. Można więc powiedzieć, że można to „stłumić”, ale biorąc pod uwagę te czynniki, jest to mało prawdopodobne.
http://learnyouahaskell.com/ - jest prawdopodobnie jedną z najdelikatniejszych wstępów do Programowanie funkcyjne, ja dwukrotnie sprawdzane i nic poza podstawowym algebry i teorii grafów tam.
źródło
Istnieje wiele przyczyn i wszystkie one są ze sobą powiązane:
Ponadto FP nie jest tak naprawdę bardziej matematyczna niż inne paradygmaty, ale kluczowe pojęcia (funkcje prawdziwych obywateli pierwszej klasy, funkcje wyższego rzędu, zamknięcia i czystość) wymagają pewnego sposobu myślenia. W pewnym momencie twój umysł powinien „kliknąć”; jeśli rozumieć te 4 główne idee, reszta może być tak proste, jak każdego innego paradygmatu.
źródło
To dlatego, że zasadniczo programowanie komputerowe jest matematyką. Języki funkcjonalne zostały zaprojektowane z myślą o tym i dlatego wiele tutoriali koncentruje się na matematyce.
Trudno się nauczyć tylko wtedy, gdy nie jesteś przyzwyczajony do myślenia, że programowanie komputerowe ma podstawy matematyczne.
źródło
Myślę, że „The Little Schemer” jest niesamowite wprowadzenie do programowania funkcyjnego i nie jest wcale Mathy. Nie wchodzi w Monady, więc może być zbyt podstawowy dla twoich gustów, ale robi pochodną kombinatora Y pod koniec.
Niedawno przeszedłem przez to, że nie uczyłem żadnego programowania funkcjonalnego od czasu college'u 12 lat temu, i było to świetne odświeżenie, zdecydowanie jestem gotów zająć się bardziej zaawansowanymi rzeczami po pracy z większością problemów w książce przy użyciu rakiety.
źródło