Gibt es einen guten Grund, warum die Art von Prelude.read ist
read :: Read a => String -> a
anstatt einen Maybe
Wert zurückzugeben?
read :: Read a => String -> Maybe a
Wäre letzteres nicht natürlicher, da die Zeichenfolge möglicherweise nicht analysierbar ist, Haskell?
Oder sogar eine Either String a
, wo Left
würde die ursprüngliche Zeichenfolge enthalten, wenn sie nicht analysiert würde, und Right
das Ergebnis, wenn dies der Fall wäre?
Bearbeiten:
Ich versuche nicht, andere dazu zu bringen, einen entsprechenden Wrapper für mich zu schreiben. Ich suche nur die Bestätigung, dass dies sicher ist.
readMaybe
, dass bald eine Funktion hinzugefügt wird.
take
sein Integral n => n -> [a] -> [a]
?
take
akzeptiert keineNum a => a
? Warum gibt es einen Sonderfallfmap
für Listen? Warum istFunctor
fürMonad
Instanzen nicht erforderlich ? Ich erwarte, dass die Antwort den Antworten auf diese und verwandte Fragen ähnlich ist.