A tantárgy célja, hogy segítséget nyújtson a Haskell tisztán funkcionális programozási nyelv alaposabb elsajátításában, példákon keresztül megmutassa annak gyakorlati alkalmazási lehetőségeit.

Ki tudja és kinek ajánlott hallgatni a tárgyat?

  • Az ELTE Eötvös József Collegium hallgatói részére alakítjuk és hirdetjük meg a tárgyat, elsősorban az ő jelentkezésükre számítunk, illetve ők a Neptunos jelentkezéstől is függetlenül fel tudják venni a tárgyat.

  • A tárgyat leginkább a programtervező informatikus BSc szakon tartott Funkcionális programozás tárgy folytatásaként ajánljuk (de semmiképpen sem azzal párhuzamosan vagy ahelyett). Valamelyest a Fordítóprogramok tárgy ismerete is hasznos, de nem elvárás.

  • MSc hallgatóknak helyette a Funkcionális nyelvek és Funkcionális nyelvek 2 tárgyak elvégzése javasolt. Akik azokat a tárgyakat már teljesítették, nem is vehetik fel ezt.

  • Ezeken felül mindenkinek javasolt, aki:

    • programtervező informatikus BSc szakon tisztán funkcionális programozás, esetleg konkrétan Haskell alkalmazásával szeretne szakdolgozatot készíteni, ilyen témájú kutatási és fejlesztési projektekben résztvenni;

    • hajlandó és képes félév közben is energiát fektetni a tárgy előadásainak látogatásába, a beadandók elkészítésébe, szükség esetén konzultálni.

Ajánlott irodalom

Az előadásokon olykor ezekből a könyvekből válogatunk esettanulmányokat, így bennük olykor megtalálható azok részletesebb leírása is. De ettől függetlenül általánosságban is javasolt ezek tanulmányozása, hiszen sokat tudnak segíteni a Haskell megismerésében.

  • B. O'Sullivan, D. Stewart, J. Goerzen. Real World Haskell, 1st Edition. O'Reilly Media, November 2008. (online)

  • P. Hudak. The Haskell School of Expression, 1st Edition. Cambridge University Press, February 2000.

  • J. Gibbons, O. de Moor. The Fun of Programming (Cornerstones of Computing). Palgrave Macmillan, June 2005.

  • G. Hutton. Programming in Haskell. Cambridge University Press, 2007.

  • S. Thompson. Haskell: The Craft of Functional Programming, 3rd Edition. Addison-Wesley, June 2011.

  • M. Lipovaca. Learn You a Haskell for Great Good! -- A Beginner's Guide. No Starch Press, April 2011. (online)

Órai jegyzet (2016/2017 tavasz)

(Ide kerülnek majd folyamatosan a tárgyhoz kapcsolódó jegyzetek, forráskódok.)

  1. előadás: Típusok: szinonimák (type), származtatás (newtype), algebrai adattípusok (data) (forráskódok)
  2. előadás: undefined, kind, típusosztályok (class), JSON állományok absztrakt ábrázolása (forráskódok)
  3. előadás: Műveletek a Maybe típussal, absztrakt JSON-értékek megjelenítése: a Doc típus (forráskódok)
  4. előadás: JSON formátumú szövegek szintaktikai elemzése a Parser típussal (forráskódok)
  5. előadás: JSON beolvasása a Parser típussal, balrekurzív elemzés (forráskódok)
  6. előadás: Funktorok és applikatív funktorok, animációk készítése függvényekkel (forráskódok)
  7. előadás: Animációk funktorokkal, monádok (forráskódok)
  8. előadás: Programozás monádokkal, különböző monádtípusok definíciója (forráskódok)
  9. előadás: Rekord szintaxis, State, Reader és Writer monádok (forráskódok)
  10. előadás: Monádtörvények, a monádok join művelete, monádtranszformátorok (forráskódok)
  11. előadás: Monádtranszformátorok (forráskódok)

Konzultáció

A tantárgyhoz nem tartozik külön terembe beosztott, konzultációs időpont. Igény szerint viszont az oktatót bármikor meg lehet keresni ezügyben a holnapján közölt fogadóórák időpontjában, különleges esetben előzetes, emailen keresztüli egyeztetés alapján megbeszélt alkalommal.

Követelmények

A tárgyhoz tartozó számokérés alapvetően két fázisra osztható.

Félévközi feladatok

A félév folyamán heti rendszerességű kisbeadandókat kell tudni megoldani és beadni a BE-AD rendszeren keresztül, ahol a tárgy Haladó Haskell (EC) néven található meg. Ezek 50%-ának kell elfogadott állapotúnak kell lennie a félévvégi géptermi dolgozat időpontjáig, másképp nem lehet megírni. A BE-AD szerverre a kari, INF-es (Pandorás) azonosítóval és jelszóval lehet belépni.

Félévvégi géptermi dolgozat

A tárgyból jegyet a félév végén, vizsgaidőszakban tartandó géptermi dolgozatírással lehet szerezni. Ez alapvetően programozási feladatok önálló megoldását jelenti, amelyek témájukban igyekeznek felölelni a félév anyagát. Ehhez elérhető egy mintafeladat is.


Vissza az oktatói honlapra

Utolsó módosítás: 2017.05.17.