Article View: pl.comp.lang.funkcyjne
Article #971Re: Języki funkcyjne (F#, Clojure, OCaml) a kwestia "wyższej" matematyki, rachunku lambda itd
From: godek.maciek
Date: Tue, 17 Jan 2017 22:14
Date: Tue, 17 Jan 2017 22:14
38 lines
3604 bytes
3604 bytes
W dniu wtorek, 17 stycznia 2017 20:36:05 UTC+1 użytkownik pawel...@gmail.com napisał: > > Wiadomo że trzeba zmienić podejście w myśleniu o strukturach danych, ale czy Waszym zdaniem osoba która chce programować w takim F#, OCaml czy Haskellu powinna wziąć korki z matmy i poznać dobrze np. wspomniany rachunek lambda w matematyce? Cześć. Co do korków z matmy, to wydają się dziwnym pomysłem. Chyba że byś chciał np. odświeżyć sobie pochodne funkcji, gdybyś tworzył np. program do różniczkowania symbolicznego. Jeżeli idzie o rachunek lambda, to jeżeli się zajmuje językiem z perspektywy akademickiej, oczywiście warto go znać, ale w praktyce w programowaniu w ogóle nie jest potrzebny i należy go traktować raczej jako ciekawostkę (tzn. numerały Churcha czy kombinatory punktu stałego uświadamiają, jak niewiele jest potrzebne do przeprowadzenia dowolnego obliczenia, ale nie pomagają w codziennej praktyce). Jeśli Cię to ciekawi, to tutaj jest opracowane w dość przystępny sposób: http://www.cl.cam.ac.uk/teaching/Lectures/funprog-jrh-1996/ Ale bez tego można programować równie dobrze, a nawet lepiej. Co do funkcyjnego podejścia, to najlepsza książka, z jaką miałem styczność, to "Struktura i Interpretacja Programów Komputerowych" (angielska wersja jest dostępna tu: https://mitpress.mit.edu/sicp/full-text/book/book.html) Osobiście sądzę, że ta książka reprezentuje najzdrowsze podejście do programowania. Jest też np. książka Byrda i Wadlera, która jednak w moim odczuciu jest mocno niepraktyczna (aczkolwiek przeglądałem ją tylko pobieżnie). Tak czy inaczej, moim zdaniem programowanie funkcyjne to jest przede wszystkim zdrowa dyscyplina przy projektowaniu programów (nabiera znaczenia zwłaszcza przy większych programach, gdzie niespójność kodu utrudnia wnioskowanie i rozbudowywanie), oraz narzędzie ekspresji, i można ją uprawiać nawet w językach niefunkcyjnych, jak C czy Python. Najważniejsze jest to, żeby pisać programy.
Technical Details
Message-ID:
<49078b6d-512c-4f39-a6c1-3e6f266c5061@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!feeder.erje.net!2.us.feeder.erje.net!feeder.usenetexpress.com!feeder1.iad1.usenetexpress.com!216.166.98.84.MISMATCH!border1.nntp.dca1.giganews.com!nntp.giganews.com!q58no488qte.0!news-out.google.com!78ni46itm.0!nntp.google.com!r185no1505ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailReferences:
<aebb68c4-f04b-4566-8d4a-1afb7e4173a7@googlegroups.com>Show Full Headers
Complete Article Headers
X-Received: by 10.129.42.215 with SMTP id q206mr653911ywq.164.1484691271783; Tue, 17 Jan 2017 14:14:31 -0800 (PST) X-Received: by 10.157.18.211 with SMTP id g77mr2676881otg.14.1484691271709; Tue, 17 Jan 2017 14:14:31 -0800 (PST) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!feeder.erje.net!2.us.feeder.erje.net!feeder.usenetexpress.com!feeder1.iad1.usenetexpress.com!216.166.98.84.MISMATCH!border1.nntp.dca1.giganews.com!nntp.giganews.com!q58no488qte.0!news-out.google.com!78ni46itm.0!nntp.google.com!r185no1505ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.funkcyjne Date: Tue, 17 Jan 2017 14:14:31 -0800 (PST) In-Reply-To: <aebb68c4-f04b-4566-8d4a-1afb7e4173a7@googlegroups.com> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=176.221.123.40; posting-account=f7iIKQoAAAAkDKpUafc-4IXhmRAzdB5r NNTP-Posting-Host: 176.221.123.40 References: <aebb68c4-f04b-4566-8d4a-1afb7e4173a7@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <49078b6d-512c-4f39-a6c1-3e6f266c5061@googlegroups.com> Subject: Re: Języki funkcyjne (F#, Clojure, OCaml) a kwestia "wyższej" matematyki, rachunku lambda itd From: godek.maciek@gmail.com Injection-Date: Tue, 17 Jan 2017 22:14:31 +0000 Lines: 57 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit