Opleiding: Haskell Programming
In the course Haskell Programming from SpiralTrain participants learn to program in the pure functional programming language Haskell.Haskell Intro
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.
Data Types and Operators
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.
Functions
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.
Modules
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.
Haskell Containers
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.
Audience Haskell Programming
The course Haskell Programming course is intended for anyone who wants to learn programming in the functional programming language Haskell.
Prerequisites Course Haskell Programming
In order to participate in this course basic knowledge of programming in another programming language is beneficial to understanding, but is not required.
Realization Training Haskell Programming
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.
Course Certification Haskell Programming
After successful completion of the course, the participants receive an official certificate Haskell Programming.
Modules
Module 1 : Haskell Intro
- 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
Module 2 : Types and Operators
- 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
Module 3 : Functions
- 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
- Packages and Modules
- import Statement
- Prelude Module
- Global Namespace
- Qualified Imports
- List Module
- Char Module
- Map Module
- Set Module
- Custom Modules
- Smart Constructors
- Views
Module 5 : Containers
- Classes and Instances
- Maps
- Sets
- Trees
- Binary Trees
- Graphs
- Type Classes
- Built-in Type Classes
- Polymorphism
- Functors
- Foldables
- Lazy Evaluation
Module 6 : Monads
- 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

