Deklarativní - využíváme funkce, k popisu závislostí mezi daty, např.: y = f(x).
Výrazy se se vyhodnotí - výraz se nahradí hodnotou výrazu - často eager
Program se spouští vyhodnocením počátečního výrazu
Pure functional programming
No side effects, no mutable data
output of a function depends only on its inputs
function does not change anything in evaluation
can be evaluated in any order(many times, never)
More complex function based on recursion
no for/while cycles
natural problem decomposition
mathematical induction
Lexikální vs dynamický scope
Lexical scope – functions use bindings available where defined
Dynamic scope – functions use bindings available where executed
Lambda kalkulus
Theory developed for studying properties of effectively computable functions
Formal basis for functional programming
as Turing machines for imperative programming
Vzhledem k tomu že na ČVUTU jsme si prošili peklem tak předpokládm že javascript zlávdáme nebo to nebude problém naučit se. Toto video vysvětluje lambda calculus na javscriptu.
Funkcionální jazyky a jejich vlastnosti
Funkcionální jazyky
Vlastnosti
Pure functional programming
Lexikální vs dynamický scope
Lambda kalkulus
Iterativní konstruktory
List