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 Maybevaleur?
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ù Leftcontiendrait la chaîne d'origine si elle n'analysait pas, et Rightle 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.
readMaybefonction sera bientôt ajoutée.
takeêtre Integral n => n -> [a] -> [a]?
takeaccepte aucunNum a => a? Pourquoi y a-t-il un cas particulier defmappour les listes? Pourquoi n'est-ilFunctorpas obligatoire pour lesMonadinstances? Je m'attends à ce que la réponse soit similaire aux réponses à ces questions et aux questions connexes.