Tìm hiểu khái niệm Monad qua Rust
(techblog.samsung.com)Xin chào, mình xin chia sẻ một bài viết giải thích tương đối dễ hiểu về "monad" — một khái niệm quan trọng trong lập trình hàm.
Bài viết được xây dựng để bạn có thể từng bước nắm bắt dựa trên các ví dụ nhỏ sử dụng ngôn ngữ Rust.
7 bình luận
Cảm ơn bạn vì bài viết hay.
Được làm việc với Rust ở công ty thì đáng ghen tị thật.
Mình mong phần mã được hiển thị dưới dạng văn bản thay vì hình ảnh.
Tôi đồng ý
Bài viết hay đấy! Tuy nhiên, phần giải thích liên quan đến endofunctor có lỗi nên sẽ tốt hơn nếu được đính chính: https://x.com/simnalamburt/status/1950074970647761168?s=46
Đúng là một nhận xét rất chính xác!
Có vẻ như đã có sự hiểu nhầm trong quá trình áp dụng nội dung được viết bằng ngôn ngữ khác theo tiêu chuẩn của Rust.
Vì hệ thống kiểu của Rust tạo thành một phạm trù đơn, nên có lẽ việc phân biệt giữa endofunctor và functor thông thường là không có nhiều ý nghĩa.
Thật tiếc là blog không có chức năng bình luận, nên tôi sẽ phải hỏi xem có thể yêu cầu chỉnh sửa hay không.
Không phải mọi thứ đều là endofunctor. Những kiểu có nhiều tham số kiểu như
Result<T, E>thì không phải là 𝒞 → 𝒞, mà là Result : 𝒞 × 𝒞 → 𝒞, nên những cái như vậy là bifunctor.