Haskell is an elegant and fascinating language that has made purely functional programming practical. This tutorial aims at giving you a sense of direction in the Haskell eco system. We will explain and motivate key language concepts and introduce tools and development techniques as we need them for our examples.
We will start by exploring basic syntax and the Haskell type system in an interactive Haskell environment. The need to write (slightly) larger programs will naturally lead us to the Haskell module system. We will show how to use cabal and the hackage library database to install packages and create our own.
Key language concepts are hard to pick and will depend on the interests of the audience. Some candidates are algebraic data types and pattern matching, polymorphic functions, type classes, monads, GHC language extensions, or programming with typed holes.
Presentation language will be English, but we are happy to discuss your questions in German.
Prerequisites: You should install the Haskell Platform on your laptop. Knowledge of Haskell is not required, but a certain aptitude in at least one other programming language will be helpful.
Matthias Fischmann has implemented his thesis at the Max Planck Institute for Computer Science in Haskell 15 years ago, and has been a user and proponent of functional programming ever since. He works as a software consultant for well-typed.com and is CEO at zerobuzz.net.
Alexander Ulrich learned to love functional programming in OCaml and Haskell during his studies in computer science. He works as a research assistant at Tübingen University on translation methods for database queries and integrating database queries in functional programming languages.