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ćdobrzezdefiniowanyteoretycznie,wprak-
tycewskazujekilkaróżnych,choćpowiązanychzesobąidei.Jeśliporozmawia-
myzhakeremClosure,zapewnedużobędziemówiłomakrach.Programista
wHaskellumożemówićomonadach,aprogramistawErlanguoaktorach.
Sątoróżnepojęcia.Makrodająprogramistomniezwyklesilnemożliwości
metaprogramowania,monadypozwalająnabezpiecznemodelowaniezmian
stanu,aktoryzaśzapewniająrozbudowanysposóbrealizacjiprogramowania
rozproszonegoiwspółbieżnego.
Mimotowszystkieteróż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++;
}