Y a-t-il une bonne raison pour laquelle le type de Prelude.read est
read :: Read a => String -> a
plutôt que de renvoyer une Maybe
valeur?
read :: Read a => String -> Maybe a
Puisque la chaîne pourrait ne pas être analysable Haskell, cette dernière ne serait-elle pas plus naturelle?
Ou même un Either String a
, où Left
contiendrait la chaîne d'origine si elle n'analysait pas, et Right
le résultat si c'était le cas?
Éditer:
Je n'essaye pas d'amener les autres à écrire un wrapper correspondant pour moi. Je cherche simplement à être assuré qu'il est sécuritaire de le faire.
readMaybe
fonction sera bientôt ajoutée.
take
être Integral n => n -> [a] -> [a]
?
take
accepte aucunNum a => a
? Pourquoi y a-t-il un cas particulier defmap
pour les listes? Pourquoi n'est-ilFunctor
pas obligatoire pour lesMonad
instances? Je m'attends à ce que la réponse soit similaire aux réponses à ces questions et aux questions connexes.