Tôi xin lỗi vì tôi không biết các bài báo hoặc sách đề cập chi tiết các cách sử dụng khác nhau cho tất cả các cấu trúc đó, nhưng tôi có thể cung cấp cho bạn một vài liên kết đến các tài nguyên riêng lẻ.
Một mô hình khá phổ biến là xây dựng các máy biến áp đơn nguyên thay vì các máy biến áp đơn nguyên (xem thêm liên kết trong đoạn tiếp theo). Về cơ bản, nó có nghĩa là bạn xây dựng một thứ gì đó phải được kết hợp với các monads khác, dẫn đến một monads phức tạp hơn có thể xử lý các tính năng của cả hai.
Trong Real World Haskell có một vài chương về monads. Trong Chương 14. Đơn nguyên, các tác giả giải thích những điều cơ bản và một số cách sử dụng phổ biến (có thể, danh sách, trạng thái). Chương 15. Lập trình với đơn nguyên cung cấp nhiều giải thích hơn về cách sử dụng chúng một cách hiệu quả (nó cũng bao gồm đơn nguyên của người đọc). Chương sau giải thích cách sử dụng Parsec , nhưng có thể thú vị hơn khi tìm kiếm các bài báo về cách nó thực sự hoạt động: nó phải là một ví dụ thực sự tốt về việc sử dụng các monads được tổ chức tốt để phân tích cú pháp. Fianlly, Chương 18. Máy biến áp đơn nguyêngiới thiệu cách thức hoạt động của máy biến áp đơn nguyên và sau đó chỉ ra cách chế tạo từng bước một. Những cân nhắc đối với các phần cuối cùng của chương cũng rất thú vị.
Tôi đã đọc một lần một câu hỏi thực sự thú vị trên SO về việc sử dụng sáng tạo các monads . Các liên kết được đề xuất là những bài đọc tuyệt vời về chủ đề này. Với tinh thần đó, tôi đã cố gắng hỏi điều tương tự đối với các mũi tên : Tôi chắc chắn nhận được ít câu trả lời hơn câu trả lời trên các monads, nhưng vẫn có những câu trả lời thú vị.
Liên quan đến các mẫu OOP của nhóm bốn người, có một bộ 3 bài viết hay của IBM về chủ đề trong loạt bài Tư duy chức năng của họ . Ngôn ngữ chức năng đích là Scala. Họ tiến hành bằng cách giải thích các mẫu thiết kế thông thường trong OOP và chỉ ra cách chúng ánh xạ vào Scala.
- Tư duy chức năng: Các mẫu thiết kế chức năng, Phần 1 . Ở đây họ bao gồm các nhà máy, phương pháp mẫu, chiến lược, trọng lượng bay. Điểm mấu chốt là bằng cách có các hàm làm giá trị lớp đầu tiên, mọi thứ đơn giản hơn nhiều.
- Tư duy chức năng: Các mẫu thiết kế chức năng, Phần 2 . Đây là về java và groovy . Nó phù hợp với mẫu bộ điều hợp.
- Tư duy chức năng: Các mẫu thiết kế chức năng, Phần 3 . Ở đây họ nói về mẫu thông dịch viên. Một lần nữa, ngôn ngữ đích rất khó hiểu.
Bài viết phù hợp nhất với câu hỏi của bạn chắc chắn là bài đầu tiên, nhưng hai bài còn lại có thể là những bài đọc liên quan thú vị.