26 điểm bởi jamiecha 2025-07-28 | 7 bình luận | Chia sẻ qua WhatsApp

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

 
t7vonn 2025-08-05

Cảm ơn bạn vì bài viết hay.

 
roxie 2025-08-05

Được làm việc với Rust ở công ty thì đáng ghen tị thật.

 
carnoxen 2025-07-30

Mình mong phần mã được hiển thị dưới dạng văn bản thay vì hình ảnh.

 
2k1m0 2025-08-06

Tôi đồng ý

 
simnalamburt 2025-07-29

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

 
jamiecha 2025-07-29

Đú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.

 
simnalamburt 2025-07-29

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.