liftA4 n'existe pas en pratique, mais c'est l'idée, pour toute fonction de type a -> b -> c -> d... on calcule une fonction de type f a -> f b -> f c -> f d. Ça s'appelle un foncteur applicatif, ça permet de faire de la gestion d'erreur, mais pas que. On peut simuler du calcul non déterministe, faire des traces, du code pure qui travaille sur des IO, etc.
[^] # Re: Liberté de l'utilisateur
Posté par foobarbazz . En réponse au journal Gestion de l'erreur - C++ - std::optional. Évalué à 3. Dernière modification le 07 septembre 2016 à 15:50.
En Haskell, on fait comme ça :
liftA4 n'existe pas en pratique, mais c'est l'idée, pour toute fonction de type a -> b -> c -> d... on calcule une fonction de type f a -> f b -> f c -> f d. Ça s'appelle un foncteur applicatif, ça permet de faire de la gestion d'erreur, mais pas que. On peut simuler du calcul non déterministe, faire des traces, du code pure qui travaille sur des IO, etc.
C'est beau.