Existe-t-il une fonction intégrée avec la signature :: (Monad m) => m a -> a
?
Hoogle dit qu'il n'y a pas une telle fonction.
Pouvez-vous expliquer pourquoi?
Existe-t-il une fonction intégrée avec la signature :: (Monad m) => m a -> a
?
Hoogle dit qu'il n'y a pas une telle fonction.
Pouvez-vous expliquer pourquoi?
Il y a probablement une meilleure réponse que celle-ci, mais une façon de voir pourquoi vous ne pouvez pas avoir un type (Monad m) => m a -> a
est de considérer une monade nulle :
data Null a = Null
instance Monad Null where
return a = Null
ma >>= f = Null
Maintenant (Monad m) => m a -> a
signifie Null a -> a
, c'est-à-dire obtenir quelque chose à partir de rien. Vous ne pouvez pas faire ça.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.