J’assimilais la notion d’échec dans un map de LupusMic à la pureté de la fonction mappée. Ça n’empêche effectivement pas qu’on ait d’autres notions d’échec en Haskell, comme le fait qu’on ait des fonctions partielles, head dans ton exemple (mais on n’a pas trop le choix si on veut que head soit polymorphique, de part le free theorem), ou le fait que les fonctions ne soit évidemment pas toutes calculables vu qu’Haskell, comme tous les langages de programmation utiles, est Turing complet (si on peut calculer length, on peut résoudre le problème de l’arrêt). J’avoue avoir du mal à fusionner ces deux autres notions d’échec (la non-calculabilité et la non-totalité) en une seule comme tu le fait par l’adjectif « complèt[e] ».
[^] # Re: C++ std::future
Posté par neil . En réponse à la dépêche Sortie du livre « Parallel and Concurrent Programming in Haskell ». Évalué à 2. Dernière modification le 29 juillet 2013 à 07:48.
J’assimilais la notion d’échec dans un map de LupusMic à la pureté de la fonction mappée. Ça n’empêche effectivement pas qu’on ait d’autres notions d’échec en Haskell, comme le fait qu’on ait des fonctions partielles,
headdans ton exemple (mais on n’a pas trop le choix si on veut queheadsoit polymorphique, de part le free theorem), ou le fait que les fonctions ne soit évidemment pas toutes calculables vu qu’Haskell, comme tous les langages de programmation utiles, est Turing complet (si on peut calculerlength, on peut résoudre le problème de l’arrêt). J’avoue avoir du mal à fusionner ces deux autres notions d’échec (la non-calculabilité et la non-totalité) en une seule comme tu le fait par l’adjectif « complèt[e] ».