Szukam książki wyjaśniającej programowanie funkcjonalne w przystępny sposób. Wolałbym też taki, który nie jest zbyt nudny i nie używa ezoterycznego języka.
Idealnie wykorzysta przykłady pokazujące sytuacje, w których programowanie funkcjonalne prowadzi do bardziej eleganckich lub prostszych rozwiązań niż podejście imperatywne.
Mam rozsądne doświadczenie w programowaniu, ale nie znam wiedzy na temat programowania funkcjonalnego. Dziękuję za wszelkie sugestie
books
functional-programming
Antonio2011a
źródło
źródło
Odpowiedzi:
Sugerowałbym, zaczynając od „ The Little Schemer ” (a może później „ The Reasoned Schemer ”).
Jeśli uważasz, że Schemat jest zbyt ezoteryczny, lub jeśli lubisz Javascript, Douglas Crockford przetłumaczył wiele ćwiczeń na JavaScript: http://javascript.crockford.com/little.html
Jeśli lubisz C #, Tomas Petricek „ Real-World Functional Programming ” będzie doskonałym miejscem na rozpoczęcie. Służy również jako miłe wprowadzenie do F #.
źródło
Jeśli podoba Ci się język statyczny i [nawiasy]:
Haskell, choć dość ciężki w kwestii paradygmatu programistycznego, ma jedno z najlepszych wstępów do języka, jaki widziałem w formie „Learn You a Haskell For Great Good!”. Formularz książki jest opcjonalny, ponieważ strona jest bezpłatna, ale jest to jeden autor, którego nie czułem wcale. Real World Haskell jest dobry, ale tak naprawdę lepiej go traktować jako kontynuację [Learn..Good]. RWH jest również bezpłatny z opcjonalnym dobrodziejstwem papieru.
Z Haskell możesz łatwo przejść do innych wariantów ML, takich jak F # lub OCaml, z których oba są bardziej rozpowszechnione. Dla krwawiącej ATS .
Jeśli chcesz (i nawiasy Dynamic_Typing):
Schemat jest bardziej funkcjonalnie zorientowany z dwóch głównych dialektów Lisp, mniejszych i czystszych niż Common Lisp, ale rzadziej stosowanych w przemyśle. Osobiście podoba mi się struktura i interpretacja programów komputerowych, ale jest to dość ciężka teoria, która, choć nieco trudna do przełknięcia, uczyni cię lepszym programistą.
Jeśli wolisz Common Lisp albo Practical Common Lisp lub Land of Lisp wydają się być dobrą inwestycją, pierwsza jest darmowa online, a druga jest dość tania i, co ważniejsze (dla niektórych) skoncentrowana na grze. Jest mocniejszy, choć mniej czysty niż Scheme.
Z nich możesz rozwinąć się w Clojure, jeśli chcesz. Jest to Lisp dla JVM, więc łatwiej jest go wdrożyć i lepiej być w stanie obronić się przed zarzutami bycia „akademickim” Clojure może wdrożyć na .NET i przejść również na Javascript. W przypadku macierzystej platformy .NET wypróbuj IronScheme .
Możesz także podzielić różnicę i nauczyć się obu rodzajów naraz dzięki programowi Write Your a Scheme w 48 godzin w Haskell.
źródło
Moje ulubione źródło to Delikatne wprowadzenie do Haskell . Przeczytałem część „ Naucz się Haskella” i „ Prawdziwy świat O'Reilly Haskell” i Simona Thompsona „ Craft of Functional Programming” , ale szczerze mówiąc, lepiej sobie radzę z łagodnym wprowadzeniem. To trochę jak K&R Haskella: cienki dokument stworzony przez twórców języka. Nie pracowity, nie protekcjonalny, ale nie próbujący przytłoczyć cię swoją erudycją.
źródło
http://hop.perl.plover.com/ zawiera książkę, którą można pobrać za darmo. Wyjaśnia, jak używać wielu technik funkcjonalnych w Perlu.
Większość tego, co mówi, można bardzo łatwo przetłumaczyć na JavaScript, Ruby lub Python.
źródło
Obecnie uczę się programowania funkcjonalnego. Jednak uczę się za pomocą Haskell.
Oto kilka książek online (można je również kupić w twardej oprawie iirc)
Haskell nie jest estrowy i staje się coraz bardziej popularny (być może nie tak popularny jak LISP lub Erlang). Jest to jednak język funkcjonalny i zmusza do nauki paradygmatu programowania funkcjonalnego. W przeciwieństwie do w połowie imperatywnego, w połowie funkcjonalnego podejścia, które otrzymasz przy użyciu języka nie wyłącznie funkcjonalnego.
Ludzie opracowali WebServers, Bittorrent Clients i kilka rzeczywistych aplikacji za pomocą haskell. Jednak osobiście używam go do nauki pojęć, a następnie stosuję to w C # i F #, który do tej pory działa fantastycznie.
Cieszyć się.
źródło
Kilka razy słyszałem dobre rzeczy o „strukturze i interpretacji programów komputerowych”. To prawdziwa książka, więc możesz też chcieć ją zdobyć w wersji papierowej, patrz http://www.amazon.co.uk/Structure-Interpretation-Computer-Electrical-Engineering/dp/0262510871 .
Jest bezpłatnie dostępny tutaj http://mitpress.mit.edu/sicp/ ( http://mitpress.mit.edu/sicp/full-text/book/book.html ), a nawet filmy z wykładów ( http: //groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/ )
źródło
Programowanie w Haskell
Może nie zdecydujesz się go kupić, ale strona główna książki (patrz wyżej) prowadzi do 13 filmów z 9 kanałów na temat programowania w Haskell.
źródło