Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
ROZDZIAŁ2
Myśleniefunkcyjne
dlaimperatywnegoumysłu
MichaelBevilacqua-Linn
Dokładneokreślenie,czymwistociejestprogramowaniefunkcyjne,możebyć
trudne.
Niejesttołatwe,gdyżterminten,choćdobrzezdeniowanyteoretycznie,wprak-
tycewskazujekilkażnych,choćpowiązanychzesobąidei.Jeśliporozmawia-
myzhakeremClosure,zapewnedużobędziemówiłomakrach.Programista
wHaskellumożemówićomonadach,aprogramistawErlanguoaktorach.
Sątożnepojęcia.Makrodająprogramistomniezwyklesilnemożliwości
metaprogramowania,monadypozwalająnabezpiecznemodelowaniezmian
stanu,aktoryzaśzapewniająrozbudowanysposóbrealizacjiprogramowania
rozproszonegoiwspółbieżnego.
Mimotowszystkieteżneideeuważasięzacechyjęzykówfunkcyjnych.
Mnogośćpojęćmożeniecoutrudnićokreślenie,ocowtymwszystkimchodzi.
Ajednakpodstawowaideajestprosta.
Wszystkosprowadzasiędofunkcji
Wswojejistocieprogramowaniefunkcyjnedotyczyprogramowaniazczystymi
funkcjami,bezefektówubocznych.
Otoczystafunkcja:
f(x)=<raisepower="2">x</raise>
Awięctajestczysta:
publicintincrementCounter(intcounter){
returncounter++;
}