Czy istnieje dobry powód, dla którego jest to typ Prelude.read
read :: Read a => String -> a
zamiast zwracać Maybewartość?
read :: Read a => String -> Maybe a
Skoro łańcuch Haskell może nie dać się przeanalizować, czy to drugie nie byłoby bardziej naturalne?
Lub nawet Either String a, gdzie Leftzawierałby oryginalny ciąg, gdyby nie został przeanalizowany, a Rightwynik, gdyby tak się stało?
Edytować:
Nie próbuję nakłonić innych do napisania dla mnie odpowiedniego opakowania. Po prostu szukam pewności, że można to bezpiecznie zrobić.
readMaybewkrótce zostanie dodana funkcja.
takebyć Integral n => n -> [a] -> [a]?
takeakceptuje żadnegoNum a => a? Dlaczego istnieje specjalny przypadekfmapdla list? DlaczegoFunctornie jest to wymagane wMonadprzypadku instancji? Oczekuję, że odpowiedź będzie podobna do odpowiedzi na te i pokrewne pytania.