Functioneel Programmeren
Lesgeld
Intro cursus Functioneel Programmeren
De cursus cursus Functioneel Programmeren start met een bespreking van de achtergronden van functioneel programmeren in de lambda calculus. In dit programmeerparadigma wordt een programma opgebouwd uit functies die operaties uitvoeren op de argumenten. Dit biedt ontwikkelaars een krachtige manier om code te structureren en te begrijpen.
Functionele Kenmerken
Moderne talen zoals Java, Python, Scala en JavaScript zijn uitgerust met
Intro cursus Functioneel Programmeren
De cursus cursus Functioneel Programmeren start met een bespreking van de achtergronden van functioneel programmeren in de lambda calculus. In dit programmeerparadigma wordt een programma opgebouwd uit functies die operaties uitvoeren op de argumenten. Dit biedt ontwikkelaars een krachtige manier om code te structureren en te begrijpen.
Functionele Kenmerken
Moderne talen zoals Java, Python, Scala en JavaScript zijn uitgerust met functionele kenmerken maar zijn er niet volledig op gebaseerd. Deze talen bieden een hybride benadering, waardoor ze de voordelen van functioneel programmeren combineren met andere paradigma's.
Pure Functionele Talen
Programmeertalen die volledig zijn gebaseerd op het functionele paradigma zijn onder andere Erlang, F♯, Lisp en ML. Deze talen zijn ontworpen om de principes van functioneel programmeren te omarmen, waardoor ze unieke voordelen bieden voor bepaalde soorten toepassingen.
Neveneffecten
In de cursus cursus Functioneel Programmeren wordt ook besproken hoe functies in puur functionele programmeertalen geen neveneffecten veroorzaken. Dit zijn effecten die invloed hebben op meer dan alleen het resultaat van de functie, zoals het wijzigen van een globale variabele. Variabelen die dienen als accumulator, counter of controlevariabele horen niet thuis in een functionele taal.
Map en Reduce
Daarnaast wordt aandacht besteed aan belangrijke functionele concepten zoals immutable data, closures en de map en reduce algoritmes. Deze technieken zijn essentieel voor het effectief toepassen van functioneel programmeren in de praktijk.
Functies en Stijl
In de cursus Functioneel Programmeren komen ook de verschillende soorten functies aan bod, zoals first-class functies, higher-order functies en lambda functies. Dit helpt studenten om inzicht te krijgen in de veelzijdigheid van functioneel programmeren.
Andere Functionele Concepten
Tenslotte behandelt de cursus andere functionele begrippen zoals Generators, Iterators, Fold Expressions, Memoization en Monads. Deze concepten zijn cruciaal voor het beheersen van functioneel programmeren en worden vaak gebruikt in de ontwikkeling van complexe softwaretoepassingen. Voor meer informatie over functioneel programmeren, kun je de officiële Scala-website raadplegen.
Bekijk ook onze cursus Carbon Programmeren voor meer mogelijkheden in programmeren.
Doelgroep Cursus Functioneel Programmeren
De cursus Functioneel programmeren is bedoeld voor personen die de principes van functioneel programmeren willen leren en die deze kennis in talen met functionele aspecten willen toepassen.
Voorkennis Cursus Functioneel Programmeren
Om deel te nemen aan deze cursus dient men te beschikken over basis programmeer vaardigheden en is ervaring met software ontwikkeling vereist.
Uitvoering Training Functioneel Programmeren
De theorie wordt besproken aan de hand van presentaties. Demo's worden gebruikt om de concepten te verduidelijken. Voorbeelden in verschillende talen worden gebruikt om de concepten te illustreren. De theorie wordt afgewisseld met oefeningen.
Certificering Functioneel Programmeren
De deelnemers krijgen na het goed doorlopen van de cursus een officieel certificaat Functioneel Programmeren.
Modules
Module 1 : Intro Functional Programming
- What is Functional Programming?
- Paradigm Origins
- Lambda Calculus
- Absence of side effects
- Immutable Data and Keeping State
- Maintenance Benefits
- Functional Languages
- Erlang an Clojure
- Haskell and JavaScript
- Support in Python and Java
Module 2 : Functions and Style
- Functional Style
- Imperative Programming
- Declarative Programming
- First Class Functions
- Functions as Parameters
- Functions as Return Values
- Pure Functions
- Anonymous Functions
- Higher Order Functions
- Recursion
Module 3 : Map and Reduce
- Replace Iteration
- Map Parameters
- Function and Collection
- Anonymous Functions
- Lambda's
- Reduce to Single Value
- Reduce Parameters
- Benefits Map and Reduce
- Filter and Find Function
- All and Any Function
Module 4 : Pipelines
- Combining Functions
- Parallelism
- Composition
- Efficiency Issues
- Referential Transparency
- Tail Call Optimization
- Currying
- Lazy Evaluation
- Determinism
Module 5 : Other Functional Concepts
- Generators and Iterators
- Fold Expressions
- Memoization
- Monads
- Strict Evaluation
- Type Systems
- Non-strict Evaluation
- Evil of Shared State
- Thread Safeness