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 13:10, M-XI
  • Cvičenie: Štvrtok, 14:50, M-XI, (Daniel Kyselica, Peter Borovanský)
  • HaskellThon (pomocné cvičenie): spoločná code session najmä pre tých, čo chcú pomalšie intro do Haskellu, stačí sa ozvať, termín po dohode
  • Domáce úlohy: opravuje Daniel Kyselica
  • 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 )
  • 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. [ 20. 2. ] Funkcionálne programovanie - úvodná prednáška Prednáška Cvičenie Čítanie
  2. [ 27. 2. ] Základné funkcionály/QuickCheck Prednáška Cvičenie ČítanieData.List ČítanieQuickCheck ČítanieQuickCheck2 ČítanieQuickCheck - ICFP'00
  3. [ 5. 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. [ 12. 3. ] Sudoku solver Prednáška Cvičenie reading čítanie
  5. [ 19. 3. ] Lambda kalkul - jemný úvod Prednáška Cvičenie ČítanieLambda calculus - alternatívn intro
  6. [ 26. 3. ] Lambda kalkul - Churchove čísla Prednáška ČítanieLambda calculus encodings ČítanieLambda calculus encodings
  7. [ 9. 4. ] Lambda kalkul - vypočítateľnosť, Church-Roserova vlastnosť
  8. [ 16. 4. ] de Bruijnove indexy , Logika kombinátorov
  9. [ 23. 4. ] Lambda kalkul - typy
  10. [ 30. 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
  11. [ 7. 5. ] Monády - (Maybe, List, maybe State monad)
  12. [ 14. 5. ] Monády - (Reader, Writer, State monad)

Literatúra: