Apakah ada alasan bagus mengapa tipe Prelude.read itu
read :: Read a => String -> a
daripada mengembalikan Maybenilai?
read :: Read a => String -> Maybe a
Karena string mungkin gagal diuraikan Haskell, bukankah yang terakhir lebih natural?
Atau bahkan Either String a, di mana Leftakan berisi string asli jika tidak diurai, dan Righthasilnya jika demikian?
Edit:
Saya tidak mencoba membuat orang lain menulis bungkus yang sesuai untuk saya. Hanya mencari kepastian bahwa melakukannya aman.
readMaybefungsi akan segera ditambahkan.
takemenjadi Integral n => n -> [a] -> [a]?
takemenerimanyaNum a => a? Mengapa ada kasus khususfmapuntuk daftar? MengapaFunctortidak diperlukan untukMonadcontoh? Saya berharap jawabannya serupa dengan jawaban atas pertanyaan ini dan pertanyaan terkait.