Apakah ada alasan bagus mengapa tipe Prelude.read itu
read :: Read a => String -> a
daripada mengembalikan Maybe
nilai?
read :: Read a => String -> Maybe a
Karena string mungkin gagal diuraikan Haskell, bukankah yang terakhir lebih natural?
Atau bahkan Either String a
, di mana Left
akan berisi string asli jika tidak diurai, dan Right
hasilnya jika demikian?
Edit:
Saya tidak mencoba membuat orang lain menulis bungkus yang sesuai untuk saya. Hanya mencari kepastian bahwa melakukannya aman.
readMaybe
fungsi akan segera ditambahkan.
take
menjadi Integral n => n -> [a] -> [a]
?
take
menerimanyaNum a => a
? Mengapa ada kasus khususfmap
untuk daftar? MengapaFunctor
tidak diperlukan untukMonad
contoh? Saya berharap jawabannya serupa dengan jawaban atas pertanyaan ini dan pertanyaan terkait.