ASQ Funktionale Programmierung
Unterlagen
Die Videos zur Vorlesung finden sich jeweils hier: https://cloud.uni-jena.de/s/QowbJYK3dZGRaHe
Tag | Slides | Code | Notes |
---|---|---|---|
2023-10-19 | Slides | ||
2023-10-26 | Slides | Code | |
2023-11-02 | Slides | Code | List comprehensions and Fibonacci |
Hausaufgabe zum Parsing. Beschreibung und Hilfsfunktionen im Code | |||
2023-11-09 | Token Parsing | Code - token | |
2023-11-16 | Monadic Parsing | Code - monadic | Vorlesungsvideos verfügbar |
Hausaufgaben zum 23. | Die Hausaufgaben finden sich ab Zeile 417 im Link links | ||
2023-11-23 | Monadic Parsing | Code | “Deep dive” in Monaden, Parsing, eure Fragen, und die Lösungen zu den Hausaufgaben |
2023-11-30 | Rush hour Intro | Einführung zum Spiel Rush hour. Video in der uni jena cloud | |
2023-12-04 | Rush hour hints | Hinweise zu Datenstrukturen die man in Rushhour nutzen kann | |
2023-12-04 | Monad transformer | Code | Monad transfomer Code und Slides. Video in der Uni Jena Cloud |
2023-12-04 | Typfamilien | Code | Typfamilien und ein bischen Typlevel-Programmierung |
2023-12-07 | Code | Minibeispiel zu den Funktionen (.) und ($) zur Funktionskomposition |
|
2024-01-03 | Rushhour - Vorlesung | Beginn der Rushhour-Implementation “live” in der Vorlesung | |
2024-01-03 | Rushhour - Choener | Meine Implementation von rushhour | |
2024-01-06 | Rekursion | Rekursion | Video in der Cloud |
2024-01-18 | Arrays | Array | Kurz-Intro zu Haskell-Arrays, Video in der Cloud |
2024-01-18 | Streams | streams | Stream fusion, Video in der Cloud |
2024-01-18 | Hausaufgabe … | Siehe unten zu “Hausaufgabe Streams” | |
2024-01-24 | Lambda Calculus | Tutorial Intro to Lambda Calculus: https://arxiv.org/abs/1503.09060 | |
2024-02-01 | Zusammenfassung | Zusammenfassung der Vorlesung |
2024-01-18, Hausaufgabe Streams
Unter Data.List finden sich die wichtigsten Funktionen auf Haskell-Listen.
Folgende Funktionen sind interessant: (++), length, map, foldl', scanl', unfoldr, lookup, zip
.
- Versteht was jede einzelne Funktion tut. Basierend auf ihrem Typ, der Beschreibung, und dem jeweiligem Beispiel.
- Lest nicht den Source code, auch nicht den vom “vector” package.
- Implementiert die entsprechenden Funktionen basierend auf
streams
wie es oben zur Verfügung steht.
Hinweis: der Constraint HasCallStack
kann ignoriert werden.
Bitte beachtet, dass die Unterlagen nur begleitend zur VL sind, ich erkläre viel an der Tafel und am Code, Selbststudium mit den Folien ist schwer bis unmöglich
Lernmaterial für Haskell
- Learn you a Haskell
- easy to follow tutorial on programming with Haskell, in english