🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.funkcyjne
Article #970

Języki funkcyjne (F#, Clojure, OCaml) a kwestia "wyższej" matematyki, rachunku lambda itd

#970
From: pawellt2015
Date: Tue, 17 Jan 2017 19:36
15 lines
2743 bytes
Witam

Od jakiegoś czasu programuje w językach obiektowych/imperatywnych. Z typowej matematyki znam pewnie arytmetykę: mnożenie, dzielenie, potęgowanie, pierwiastkowanie, podstawy logiki, pamiętam co to funkcja liniowa :) W zasadzie nigdy żadne zaawansowane zagadnienia matematyczne nie były mi w trakcie programowania w PHP, czy Javie potrzebne.

No i naszła mnie chęć na naukę jakiegoś języka funkcyjnego, zmianę paradygmatu. Pewnie postawię na F#, bo jest open source, dostępny na Linuksa/Windows/MacOSX i nie jest tak "ortodoksyjny" jak Haskell. Zastanawiam się teraz, czy żeby sprawnie poznać te języki, faktycznie powinienem ogarniać matematyczny rachunek lambda, matematyczne przekształcanie, "zwijanie" i "rozwijanie" funkcji itd? Zakładając że nie będę zajmował się "optymalizacją algorytmów" czy stricte matematycznymi zagadnieniami, a po prostu programowaniem użytkowym? 

Zasadniczo jak się spojrzy na różne książki/przykłady, to lambda jest w zasadzie funkcją anonimową, a zwijanie funkcji (currying) w językach funkcyjnych - to w zasadzie przekształcenie funkcji, która przyjmuje wiele argumentów, na taką która zwraca 1 argument. Ot najprostszy przykład:

max 4 5
(max 4) 5

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?

P.
Paweł
Technical Details
Message-ID: <aebb68c4-f04b-4566-8d4a-1afb7e4173a7@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!news.glorb.com!r185no2061970ita.0!news-out.google.com!h135ni6646ith.0!nntp.google.com!r185no2063734ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail

Show Full Headers
Complete Article Headers
X-Received: by 10.36.43.16 with SMTP id h16mr5520677ita.31.1484681765394;        Tue, 17 Jan 2017 11:36:05 -0800 (PST)
X-Received: by 10.157.62.29 with SMTP id a29mr3105716otd.5.1484681765358; Tue, 17 Jan 2017 11:36:05 -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!news.glorb.com!r185no2061970ita.0!news-out.google.com!h135ni6646ith.0!nntp.google.com!r185no2063734ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.lang.funkcyjne
Date: Tue, 17 Jan 2017 11:36:05 -0800 (PST)
Complaints-To: groups-abuse@google.com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=95.160.154.37; posting-account=vWocFQoAAAAn1nX3XnhT6QQ6-Dh0pykn
NNTP-Posting-Host: 95.160.154.37
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <aebb68c4-f04b-4566-8d4a-1afb7e4173a7@googlegroups.com>
Subject: Języki funkcyjne (F#, Clojure, OCaml) a kwestia
 "wyższej" matematyki, rachunku lambda itd
From: pawellt2015@gmail.com
Injection-Date: Tue, 17 Jan 2017 19:36:05 +0000
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit