2010. március 25.

Funkcionális programozás nem-programozóknak (könyvek és honlapok)

A logikai programozás után most a funkcionális paradigma elsajátítására buzdítok mindenkit. Habár nehéz, mindenképpen megéri, különösen a logika iránt érdeklődőknek.

Ha érdekel pontosan mi is az a funkcionális programozás, a wikipedia szócikke remekül összefoglalja miről is szól ez a paradigma. Érdemes megtanulni, az újdonság miatt és nem mellesleg azért is mert egyre több hirdetésben keresnek hozzáértő embereket (legutóbb az Ericsson hirdetését láttam).

Nagyon sok nyelv forog most a köztudatban, pl. Erlang Scala Clojure LISP. Mindegyik nagyon jó, csak nem könnyítik meg a kezdő dolgát. A Haskell egyszerű szintaxisa és remek támogatása ideális a kezdő számára (és persze akár ipari felhasználásra is). Persze az előbb említett nyelvek is szépek és jók, csak szerintem kutya nehezek egy kezdőnek és nincs még sok könyv/oldal ahol megfelelően tálalt információt találhatsz.Két implementációt érdemes figyelembe venni, GHC és Hugs.

Én a GHC-t ajánlom (azon belül is inkább a Haskell Platformot), mivel tkp az az "industry standard". A Hugs viszont pont oktatási célokra készült és a legtöbb könyv/tutorial őt használja. A döntés rajtad áll,  mindegy melyiket választod, az elején nem befolyásolja a munkádat. Dönts, telepíts, és csapj bele a lecsóba!

Említettem a Haskell nagyon jól dokumentált, sok anyagot találhatsz a neten. Érdemes kutakodni és akár az IRC csatornára is felmenni néha. Sajnos egy idő után az ember kinövi az ingyenes anyagokat és a pénztárcájába kell nyúlnia (ha nem akar szerzői jogokat sérteni), de nem szabad abba a hibába esni hogy mindent el akarsz olvasni és mindent be akarsz szerezni. Válaszd ki hogy mi felel meg a te érdeklődésednek és habitusodnak. Ha érdekel egy könyv a Google Books segítségével lapozz bele (vagy az Amazon-on). Többet ér ha egy könyvet végig dolgozol, mintha ötön végigfutsz!

Ingyenesen elérhető anyagok.
Learn You a Haskell for Great Good!
Nem árt egy kis programozási ismeret mielőtt elkezded, de tutira szeretni fogod. Alapos és nem túl lapos összefoglalás.
Real World Haskell
A könyv! Elsőnek nehéz, talán másodiknak is, de jó referencia. Különösen az első négy-öt fejezet ajnálott.
Computational Semantics with Functional Programming
Filoszok és nyelvészek számára kötelező. Programozási ismereteket nem tételez fel az olvasójától, viszont alapvető logikai (nem józan paraszti észre gondolok itt, hanem pl a Ruzsa könyvre) ismereteket viszont igen!
The Haskell School of Music
A cím önmagáért beszél. Paul Hudak a Haskell egyik alkotója nagyon sokat tett a nyelvért és annak oktatásáért. Egyik mániája a multimédia programozás (Lentebb híres könyve). Szerintem nem könnyű olvasmány, viszont érdekes és sokat tanulhatsz belőle.

Hasznos könyvek

The Haskell Road to Logic, Maths and Programming
Nagyon hasonlít a CS with FP-re, a szerzők között is van átfedés. Célja az alapvető logikai érvelés (és a funkcionális programozás alapjainak) megismertetése. Alapvető logikai ismeretekkel bátran belevághat minden filosz és nyelvész meg egyéb bölcsész.
The Haskell Shcool of Expressions
Hudak híres könyve. Kicsit régi, ezért mindenképpen vess egy pillantást a könyv oldalára a neten. A szoftvert nem volt egyszerű telepítenem, de nem lehetetlen (és te biztos ügyesebb vagy nálam). Multimédia programozás felől közelít, de nem könnyű olvasmány ez sem. Nem tételez fel sokat az olvasóról, csak annyit hogy figyelmesen olvas és gondolkodik. Ez bizony sok! Nem szájba rág, hanem gondolkodtat, ami sok könyvről nem mondható el.

Algorithms: A Functional Programming Approach
Nem éppen kezdőknek való olvasmány, viszont ha megvannak az alapok, bátran belevághatsz. Szerintem sokkal érthetőbb a funkcionális paradigma segítségével tanulni ezt a témát mint ezt bonyolítani még objektum orientált cuccokkal...

Nincsenek megjegyzések: