Thế giới thực Haskell nêu rõ rằng "Transformer stacking order is important". Tuy nhiên, tôi dường như không thể tìm ra nếu có sự khác biệt giữa ExceptT (ResourceT m) a
và ResourceT (ExceptT m) a
. Họ sẽ can thiệp với nhau?'Ngoại trừ Tài nguyênT' so với 'Tài nguyênT Ngoại trừ'
5
A
Trả lời
4
Trong ví dụ này, không có sự khác biệt thực sự giữa hai đơn đặt hàng. Lý do là: không giống như nhiều máy biến áp bao gồm ExceptT
, máy biến áp tài nguyên thực hiện không “ tiêm ” hoạt động của riêng nó vào đơn nguyên cơ sở mà bạn áp dụng nó, nhưng thay vì bắt đầu toàn bộ hành động.
Nếu bạn viết ra các loại (tôi sẽ đề cập đến MaybeT
thay vì ExceptT
vì lợi ích của sự đơn giản, họ đang rõ ràng là tương đương với mục đích của câu hỏi này) sau đó bạn có cơ bản
type MaybeResourceT m a = MaybeT (IORef RelMap -> m a)
= IORef RelMap -> m (Maybe a)
type ResourceMaybeT m a = ResourceT (m (Maybe a))
= IORef RelMap -> m (Maybe a)
tức các loại tương đương thực sự. Tôi cho rằng bạn cũng có thể chỉ ra điều đó cho các hoạt động.
Các vấn đề liên quan
- 1. Swig -includeall ngoại trừ ...
- 2. Graphics.DrawImage: Ngoại trừ bộ nhớ
- 3. Công cụ xây dựng 21.1.2 - NGOẠI TRỪ LẠI NGOẠI TRỪ KHÔNG BAO GIỜ
- 4. linq Ngoại trừ và tùy chỉnh IEqualityComparer
- 5. LINQ Ngoại trừ IEqualityComparer tùy chỉnh
- 6. Regex; loại trừ tất cả dấu chấm câu ngoại trừ
- 7. Ngoại trừ hiệu ứng tương tự với Distinct?
- 8. NGOẠI TRỪ TUYỆT VỜI NGOẠI HỐI: java.lang.IllegalArgumentException: đã thêm
- 9. LaTeX: set khoảng cách dòng tùy chỉnh ngoại trừ một số bộ phận tài liệu
- 10. Ghi ngoại lệ cụ thể bằng cách thử ... ngoại trừ
- 11. pylint cảnh báo về 'trừ ngoại lệ:'
- 12. lĩnh vực Ngoại trừ trong JAXB
- 13. Python 'ngoại trừ' mùa thu thông qua
- 14. JQuery Chọn trường nhập ngoại trừ Ẩn
- 15. Xác thực Apache ngoại trừ localhost
- 16. jQuery "chọn tất cả ngoại trừ"
- 17. Xóa thư mục ngoại trừ một
- 18. Nginx: Chuyển tất cả ngoại trừ một
- 19. truy vấn sqlite với giao nhau và ngoại trừ
- 20. Có gì sai với ngoại trừ của tôi?
- 21. Có thể bắt tất cả ngoại lệ ngoại trừ thời gian chạy ngoại lệ không?
- 22. Có `thử ... ngoại trừ Ngoại lệ như e` nắm bắt mọi ngoại lệ có thể?
- 23. ngoại lệ python không được nhận dạng; làm thế nào để xử lý với ngoại trừ?
- 24. Sự khác biệt giữa StateT (Ngoại trừ e m) và Ngoại trừ e (StateT s m) là gì?
- 25. Java: Thêm/trừ Math.ulp() so với Math.nextAfter()
- 26. C++ Không thể sao chép ngoại trừ đôi khi
- 27. Tar: tạo lưu trữ loại trừ thư mục ngoại trừ một
- 28. Mở rộng ngoại trừ phương pháp ghi đè trong Java
- 29. Cách tốt nhất để quản lý tài nguyên trong ngăn xếp đơn lẻ như Ngoại trừ một IO là gì?
- 30. Nhóm Bằng Ngoại Trừ Giá Trị Nhất Định