- Leren door doen
- Trainers met praktijkervaring
- Klassikale trainingen
- Gedetailleerd cursusmateriaal
- Duidelijke inhoudsbeschrijving
- Maatwerk inhoud mogelijk
- Trainingen die doorgaan
- Kleine groepen
In de cursus Haskell Programmeren leren de deelnemers programmeren in de pure functionele programmeer taal Haskell. In tegenstelling tot conventionele talen als C en Java, worden in functionele talen berekeningen uitgevoerd door afzonderlijke mathematische functies met elkaar te combineren. Een functionele taal als Haskell heeft tevens van nature support voor multithreading en parallelism, hetgeen resulteert in een goede performance.
De cursus gaat van start met een introductie van de basis syntax van Haskell en de voornaamste karakteristieken van de taal zoals laziness in expression evaluation met een thunk data structure, static typing, modularity en het omgaan met multiple threads.
Vervolgens wordt aandacht besteed aan de data types en operators van de taal. Hierbij komen ook data structures als lists, tuples en records aan de orde. En ook exceptions en het benaderen van het file systeem wordt besproken.
Ook onderdeel van het programma van de cursus zijn de definitie en declaratie van functies in Haskell met argument lists, pattern matching en guards. Tevens worden dan recursieve functies, higher order functies en lambda expressies behandeld.
Vervolgens passeren de diverse Haskell modules zoals de Prelude, List, Char, Set en Map module de revue. En wordt besproken hoe user defined modules en packages worden gemaakt. Hierbij komen ook qualified imports en de global namespace ter sprake.
Tenslotte wordt aandacht besteed aan Haskell containers als classes, objects, Trees, Binary Trees, Functors en Foldables en wordt ingegaan op het kenmerkende functionele programmeer concept van monads.
De cursus Haskell Programmeren is bedoeld voor een ieder die wil leren programmeren in de functionele programmeer taal Haskell.
Om aan deze cursus te kunnen deelnemen is basiskennis van programmeren in een andere programmeertaal bevorderlijk voor de begripsvorming maar niet vereist.
De theorie wordt behandeld op basis van presentatie slides. De theorie wordt verduidelijkt door middel van demo's. Na bespreking van een module, is er de mogelijkheid te oefenen. De cursustijden zijn van 9.30 tot 16.30.
De deelnemers krijgen na het goed doorlopen van de cursus een officieel certificaat Haskell Programmeren.
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 |