Chapitre 03 — Programmation fonctionnelle avec Ocarina#

Comment Ocarina applique la programmation fonctionnelle, et pourquoi. Ce chapitre est plus transversal que les autres : il revisite la mécanique du framework sous l’angle FP.

Plan#

#FichierSujet
0101-effect-thunk-result.mdEffect, Thunk[T], Result[T].
0202-closures-ioc.mdClosures comme primitive d’inversion de contrôle.
0303-lazy-evaluation.mdParesse partout : ChainRunner, validate.execute, Watcher callback, lazy prefixes.
0404-fold-reduce.mdreduce (fold left) dans chain_actions.
0505-declarative.mdProgrammation déclarative : un scénario décrit, n’exécute pas.
0606-pep-695-generics.mdGenerics PEP 695, TypeVar bound, type X[T] = ....
0707-discriminated-unions-typeguards.mdUnions discriminées + TypeGuard + @final = unions « sealed ».

Pourquoi un chapitre dédié#

Le code d’Ocarina est petit, mais il incarne un nombre considérable de patterns FP. Ce chapitre est l’occasion de les nommer, de les justifier, et de pointer où est-ce qu’ils se manifestent dans le code.

Citation du Holy Book :

Tordre l’implémentation de ROP (Railway Oriented Programming) d’Ocarina jusqu’à lui en faire perdre tout son sens, puisqu’ils ne savaient même pas ce que signifie ROP, … M’imposer leur incompréhension de l’évaluation paresseuse et de l’IoC comme des vérités absolues, … M’expliquer ce que sont la programmation impérative et déclarative en racontant n’importe quoi, …