Funkcionálne programovanie

Peter Borovanský (borovan 'at' ii.fmph.uniba.sk)

Kurz preberá princípy funkcionálneho programovania (aj teórie Lambda kalkul) štýlom, 'čo si nenaprogramuješ, tomu asi nerozumieš'

Výuka:

  • kanál MS-Teams, univerzitné konto (priezvisko@uniba.sk), prihlasovací kód do kanálu FPRO je b7iv1zg
  • Prednáška: Utorok 11:30, online/F1-108, 1mAINp, 1mINFb, 2mINFb
  • Cvičenie: Utorok, 15:40, online/M-VIII (Matej Fandl, Peter Borovanský)
  • Domáce úlohy: opravuje Martina Holasová
  • Kontakt: fpro @ lists.dai.fmph.uniba.sk
  • Manažment kurzu: L.I.S.T., skúsení sa prihlásia do kurzu sami..., ostatní sa ozvite mailom, pridám vás.
  • Github:github ( prednášky, cvičenia, pekné riešenia )
  • Konzultačné hodiny: v prípade záujmu o konzultáciu/doučovanie Haskellu napíšte do chatu, resp. pošlite e-mail na fpro @lists.dai.fmph.uniba.sk
  • v pravidelných termínoch (utorok) budú v LISTe zverejnené domáce úlohy, deadline druhá nedeľa,
  • riadne cvičenie obsahuje bodovanú rozcvičku s deadline do polnoci 23:59 dňa cvičenia,
  • v prípade akýchkoľvek otázok, či problémov nás kontaktujte mailom, resp. MS Teams Chat,
  • sledujte web predmetu, github repozitár a zostaňte v dobrej nálade,
  • Body: Každá prednáška končí povinnou domácou úlohou (12 x 6 = 72 bodov), každé cvičenie má bodovanú rozcvičku (12 x 2 = 24 bodov), v počas semestra midterm (20 bodov), skúška (30 bodov), zaujímavé prémiové úlohy budú tiež,
  • Hodnotenie: A (118-...), B (105-117), C (91-104), D (78-90), E (63-77), Fx (0-62)
  • Automatické hodnotenie: podľa počtu bodov za semester (bez skúšky): A (>=100), Fx (<50)
lambda spray

Pravidlá:

Sylabus:

  1. [ 15. 2. ] Funkcionálne programovanie - úvodná prednáška Prednáška Cvičenie Čítanie
  2. [ 22. 2. ] Základné funkcionály/QuickCheck Prednáška Cvičenie ČítanieData.List ČítanieQuickCheck ČítanieQuickCheck2 ČítanieQuickCheck - ICFP'00
  3. [ 1. 3. ] Funkcie a funkcionály Prednáška Cvičenie ČítanieGenerátory Čítaniebanány a šošovky(cata a ana morfizmy) Čítanie"klasika" pre pokročilejších
  4. [ 8. 3. ] Sudoku solver Prednáška Cvičenie reading čítanie
  5. [ 15. 3. ] Lambda kalkul - jemný úvod Prednáška Cvičenie ČítanieLambda calculus - alternatívn intro
  6. [ 22. 3. ] Lambda kalkul - Churchove čísla Prednáška ČítanieLambda calculus encodings ČítanieLambda calculus encodings
  7. [ 29. 3. ] Lambda kalkul - vypočítateľnosť, Church-Roserova vlastnosť
  8. [ 5. 4. ] de Bruijnove indexy , Logika kombinátorov
  9. [ 12. 4. ] Lambda kalkul - typy
  10. [ 26. 4. ] Syntaktická analýza
  11. [ 3. 5. ] Monadické parsery a Parsec
  12. [ 26. 4. ] Monády - úvod (Functor, Applicative) Prednáška Cvičenie ČítanieMonads for Functional Programming Čítanie... Monads In Pictures Čítanie...Monad With a Bag of Peanuts
  13. [ 3. 5. ] Monády - (Maybe, List, maybe State monad)
  14. [ 10. 5. ] Monády - (Reader, Writer, State monad)

Literatúra: