Functional Programming
WS 19/20
Priv.-Doz. Dr. Frank Huch und M.Sc. Kai-Oliver Prott
News
- University courses start again on Tuesday 7th, January. Thus, we will have a lecture instead of an exersice on that day.
Dates
- Lectures: Mon 16:15 - 17:45, Thu 16:15 - 17:45 (both LMS2 - R.Ü1)
- Excercises: Tue 16:00 - 17:30 Room changed to LMS2 - Ü2/K
Registration
The registration is necessary in StudiDB and in iLearn.
In the first two lectures we will start with a quick trip through the Haskell basics, as taught in the course “Advanced Programming (Fortgeschrittene Programmierung)”. You can check the content with the german script/english script (both only acessible inside university network). You can also work through the first nine chapters of Learn you a Haskell for great good.
Additional Material
- Git-Repository for the exercises.
- Haskell-IDE-Engine for Haskell support in your favourite IDE. Contact Kai if you have trouble setting this up.
- Haskell-Style-Guide (german only, a bit lengthy).
- Recapitulation of Haskell basics (code from lecture)
- The first type class Functor (html, pdf) and code from lecture
- Monads (html, pdf) and code from lecture (a lot in comments,because already predefined)
- State monads (html, pdf) and the correspondig Code from the lecture
- Lambda-calculus and code from lecture
- Programming techniques (html, pdf) and for difference list and continuation passing style
- Non-strict programming in strict languages (html, pdf) and a realisation in Python
- A special state monad, the IO monad.
- Parsers (now complete) (html, pdf) and the implementation from lecture library and usage for some parsers
- Code using IORefs
- Debugging with Observations (html,pdf) and code from the lecture
- Algorithms and data structures (html,pdf) and modules for queues, arrays, arrayLists, arrayListSafe and trie implementation
- Generic Programming
- Generalised algebraic data types (GADts) for complex expressions and for lists with abstract type properties about their length
- Induktive Programming with graphs