Có lý do chính đáng tại sao loại Prelude.read là
read :: Read a => String -> a
thay vì trả về một Maybe
giá trị?
read :: Read a => String -> Maybe a
Vì chuỗi có thể không thể phân tích cú pháp Haskell, nên không phải chuỗi sau sẽ tự nhiên hơn?
Hoặc thậm chí là một Either String a
, nơi Left
sẽ chứa chuỗi ban đầu nếu nó không phân tích cú pháp và Right
kết quả nếu có?
Biên tập:
Tôi không cố gắng để người khác viết một trình bao bọc tương ứng cho tôi. Chỉ cần tìm kiếm sự đảm bảo rằng sẽ an toàn khi làm như vậy.
readMaybe
chức năng sẽ sớm được thêm vào.
take
nên Integral n => n -> [a] -> [a]
?
take
chấp nhận bất kỳNum a => a
? Tại sao có một trường hợp đặc biệt củafmap
danh sách? Tại saoFunctor
không bắt buộc đối với cácMonad
trường hợp? Tôi mong đợi câu trả lời tương tự như câu trả lời cho những câu hỏi này và những câu hỏi liên quan.