Funkcionális programozás jegyzet

English version

Tudnivalók a jegyzetről

Kezdő Haskell

Tudnivalók a Haskellről | Tantárgyi követelmények

Középiskolásoknak (fejlesztés alatt)
Ábrák | Számológép | Egyenletrendszerek | Összefoglalás

A Haskell értelmező
Számok | Konverziók | Bool | Listák | Halmazkifejezések
Alapvető nyelvi elemek
Függvénydefiníciók | Mintaillesztés | Rekurzió | Esetszétválasztás | where
Magasabbrendű függvények
Bevezetés | Függvénykompozíció | Hajtogatások | További függvények

Függvények összefoglaló | GHC hibaüzenetek

Haskell példaprogramok

Adatszerkezetek
AVL fák | Piros-fekete fák
Programok
Sakktábla lefedése dominókkal | 8 királynő probléma | Rubik-kocka
Félévközi zárthelyi
Minta
Korábbi zárthelyi és beadandó feladatok
Területszámítás | Racionális számok | Lempel-Ziv-Welch tömörítés | Morzekódok | Értelmező | Tömörítés | Bloom-szűrés | Kódfejtés | CRC számítás | “Connect Four” | Falfestés | Földmérés | Gödel-számozás | Római számok | Bás | Labirintus | Hanoi tornyai | Veremszámológép | Pandigitális számok | Dalkeresés | Z | Collatz-sejtés | Átírások | Jelszavak | Prioritásos sor | Tömbök | IBAN | Szóláncolatok | Linkek kiemelése | Dominójáték | Szóláncolatok építése | Base64 kódolás | Labdarúgó-világbajnokság | Biatlon verseny | Szókereső | Mátrix legnagyobb szorzata | N-gram kódolás | Gauss-Jordan elimináció | Infix kifejezések kiértékelése | Luhn-algoritmus | Hamming-kód | A D’Hondt-módszer | Szövegformázás | Karatsuba-algoritmus | Legrövidebb út gráfokban | Minimális feszítőfák gráfokban | Huffman-kódolás | Aprajafalva csatornahálózata (folytatás) | Akasztófajáték | Életjáték | Szövegek közti eltérések | Kő-papír-olló játék | NxN-es Tic-Tac-Toe | Topológiai rendezés | Pasziánsz rendezés | Sudoku logikai játék | Teknősgrafika | Marsjáró | Pénzérme forgató játék | XOR titkosítás | Kasinski elemzés | Minimális költségű utak minden csúcspárra | Az n királynő probléma | Edzésterv | Griddler | Gráfok tulajdonságai | Bináris decimális kódolás | Tűzoltók | Pizzafutár | Graham’sScan | Elemi sejtautomata
Egyéb (kísérletezés)
Ábrák | Függvényábrázolás

Haladó Haskell

Típusdefiníciók
type | newtype | data | Paraméteres data | Rekurzív data
Típusosztályok
Típusosztályok | Számosztályok
Programhiba
Monádok
Akciók | Frissíthető változók
Többszálúság
Párhuzamos kiértékelés | Adatpárhuzamos kiértékelés | Többszálú végrehajtás
Típusozás
Fajták | Magasabb rangú típusok | Nem reguláris ADT
Egzisztenciális típusozás | GADT | Típusfüggvények
További nyelvi elemek
Kivételkezelés | Őrminta, nézet-minta
Tesztelés
Szigorú és lusta kiértékelés
Nem funkcionális tulajdonságok | Részkifejezések megosztása | Memoization | Profiling
Haskell projekt készítés
Modulrendszer | Csomagkezelés | Dokumentáció | hlint
Elmélet
Gráfátíró rendszerek

Haskell előadások

ELTE Nyári Egyetem 2012: Funkcionális programozás, Haskell, Agda

ELTE Kárpát-medencei Nyári Egyetem 2015: Grafika pusztán függvényekkel

Agda

Az Agda jegyzet egyelőre csak angol nyelven érhető el itt.

Vissza a főoldalra

Főoldal