Material
Material zur Fortgeschrittenen Funktionalen Programmierung
- Folien 01
- Grundlagen Funktionaler Programmierung, Haskell
- Folien 02
- Typklassen, Funktoren und Module
- Folien 03
- Lazy Evaluation & Zirkuläre Programme
- Codebeispiel: sumWith
- Vergleich zwischen strikter und fauler Auswertung
- Folien 04
- Applikative Funktoren und Monaden
- Codebeispiel: eval
- Vereinfachung des Codes mit Applikativen Funktor
- Memoizing Ackermann
- Beschleunigung der Ackermann Funktion durch Memoisation. Einmal mit Lazy Lists und einmal mit einer Hash-Table in einer Zustandsmonade. Zur Demonstration implementieren wir die Zustandsmonade komplett zu Fuss, ohne Verwendung der Standardbibliothek für Zustandsmonaden.
- Folien 05
- Paralleles Rechnen mit GHC
- Folien 06
- Ausnahmen und Nebenläufigkeit (forkIO, MVars, Async, STM, TVars)
- Folien 07
- Record Syntax
- Folien 08
- Yesod -- ein Haskell Framework zum Erstellen von Webanwendungen
- YesodMinimal
- Minimales "HelloWorld"-Program zur Demonstration von Yesod
- Folien 09
- Yesod Framework - Teil 2 ViewPatterns, GADTs, Webformulare, Sessions, Persistenz
- Codebeispiel: Yesod Routing
- Beispiel zu Routing & Handling mit Yesod
- Codebeispiel: Yesod Applikative Formulare
- Code aus der Vorlesung zum Thema "Applikative Formulare mit Yesod"
- Codebeispiele zu Folien 9, Teil 2
- Behandelte Codebeispiele aus Foliensatz 09, Teil 02, als vollständig kompilier- und ausführbare Dateien: Yesod-Sessions Yesod-Message Yesod-Ultimate Destinations Yesod-Input Forms Yesod-Monadic Forms Yesod-Persistent Persistent Mini Demo
- Folien 10
- Grafische Benutzeroberflächen mit Gtk2Hs
- Codebeispiele zu Folien 10
- Existential Types und "Hello Gtk+ World"
- Tic Tac Toe
- Primitive GUI für das Spiel Tic Tac Toe.
- Tic Tac Toe - mit funktionierender AI
- Tic Tac Toe mit einer sehr einfachen Min-Max-AI
- Folien 11
- Debugging und Testen UPDATE: Bug auf Codebeispiel auf letzter Folie wurde nun behoben!
- Codebeispiel, Folien 11
- * Lambda Terme auswerten als Beispiel für Debugging und Tracing * Lambda Terme zufällig generieren * QuickCheck & Template Haskell (Bug behoben)
Artikelaktionen