-
Learning by doing
-
Trainers with practical experience
-
Classroom training
-
Detailed course material
-
Clear content description
-
Tailormade content possible
-
Training that proceeds
-
Small groups
In the course Haskell Programming participants learn to program in the pure functional programming language Haskell. Unlike conventional languages ​​such as C and Java, functional languages ​​perform calculations by combining separate mathematical functions. A functional language like Haskell also naturally has support for multithreading and parallelism, which results in good performance.
The course starts with an introduction to the basic syntax of Haskell and the main characteristics of the language such as laziness in expression evaluation with a thunk data structure, static typing, modularity and dealing with multiple threads.
Next attention is paid to the data types and operators of the language. Data structures such as lists, tuples and records are also discussed. And exceptions and accessing the file system are also treated.
Part of the program of the course are the definition and declaration of functions in Haskell with argument lists, pattern matching and guards. Recursive functions, higher order functions and lambda expressions are discussed as well.
Then the various Haskell modules such as the Prelude, List, Char, Set and Map module are reviewed. And it is explained how user defined modules and packages are created. This also includes the discussion of qualified imports and the global namespace.
Finally attention is paid to Haskell containers such as classes, objects, Trees, Binary Trees, Functors and Foldables and the characteristic functional programming concept of monads.
The course Haskell Programming course is intended for anyone who wants to learn programming in the functional programming language Haskell.
In order to participate in this course basic knowledge of programming in another programming language is beneficial to understanding, but is not required.
The theory is discussed on the basis of presentation slides. The theory is further explained through demos. After discussing a module, there is the possibility to practice. Course times are from 9.30 to 16.30.
After successful completion of the course, the participants receive an official certificate Haskell Programming.
Module 1 : Haskell Intro |
Module 2 : Types and Operators |
Module 3 : Functions |
What is Haskell? Functional Programming Evaluation Engine Expression Evaluation Haskells Laziness Thunk Data Structure Haskells Modularity Handling Multiple Threads Static Typing Installing Haskell Haskell Compiler Stack Installer Haskell Platform |
Numbers and Characters Strings and Booleans Lists List Comprehensions Tuples Haskell Operators Sequence Operator Control Flow Exceptions Type Class Records Default Values Idiom Files and Streams |
Function Declaration Function Names Argument Lists Function Definition Pattern Matching Guards Where Clause Recursion Lambda Expressions Higher Order Functions Head and Tail Null and Init Reverse and Take |
Module 4 : Modules |
Module 5 : Containers |
Module 6 : Monads |
Packages and Modules import Statement Prelude Module Global Namespace Qualified Imports List Module Char Module Map Module Set Module Custom Modules Smart Constructors Views |
Classes and Instances Maps Sets Trees Binary Trees Graphs Type Classes Built-in Type Classes Polymorphism Functors Foldables Lazy Evaluation |
Applicative Functors Monadic Rules Left Identity Law Right Identity Law Associativity Combinators for State Dissecting Combinators do Notation State and Lenses Monad Comprehensions Monoids Zippers |