Tôi đang tham gia chương I/O của H Worldell trong thế giới thực. Monads không được thảo luận trong cuốn sách cho 7 chương khác. Đó là để nói, sự hiểu biết của tôi về I/O là, tốt nhất, không đầy đủ.bản đồ so với hành vi của bản đồ
Hiện tại tôi đang cố gắng hiểu chức năng mapM. Như tôi đã hiểu, hàm "thực hiện" từng phần tử trong danh sách phải là "hành động" (IO monad).
Điều gì không có ý nghĩa là this example. Tại sao mapM trả về một kết quả khác với bản đồ cho cùng một đối số?
Prelude> map (\x -> [x]) [0, 1, 2] [[0],[1],[2]] Prelude> mapM (\x -> [x]) [0, 1, 2] [[0,1,2]]
cũng vui vẻ: 'chiều dài (mapM (\\ _-> a) b) == chiều dài a^length b'. Tôi nghĩ. – muhmuhten