Hackage có một số gói dành cho máy biến áp đơn nguyên:
- mtl : Thư viện biến áp đơn nguyên
- máy biến áp : Máy xúc bê tông và máy biến áp đơn nguyên
- monads-fd : Các lớp đơn nguyên, sử dụng các phụ thuộc hàm
- monads-tf : Các lớp đơn nguyên, sử dụng các họ kiểu
- monadLib : Tập hợp các máy biến áp đơn nguyên.
- mtl-tf : Thư viện biến áp đơn nguyên sử dụng các họ kiểu.
- mmtl : Thư viện máy biến áp Modular Monad
- mtlx : Thư viện biến áp đơn nguyên với các chỉ mục loại, cung cấp các bản sao 'miễn phí'.
- compo-trans : Máy biến áp đơn nguyên dùng một lần
(và có lẽ tôi đã bỏ lỡ một số)
Chúng ta sẽ sử dụng cái nào?
mtl là cái trong Nền tảng Haskell, nhưng tôi vẫn nghe trên reddit rằng nó không đẹp.
Nhưng dù sao thì lựa chọn cũng có gì là xấu, không phải nó chỉ là một điều tốt sao?
Chà, tôi đã thấy ví dụ như tác giả của trình truy cập dữ liệu phải thực hiện tất cả những thứ này như thế nào để chỉ phục vụ cho các lựa chọn phổ biến:
- Thư viện data-accessor-monadLib: Các chức năng của bộ truy cập cho các monad của monadLib
- thư viện data-accessor-monads-fd: Sử dụng Accessor để truy cập trạng thái trong lớp monad State monads-fd
- thư viện data-accessor-monads-tf: Sử dụng Accessor để truy cập trạng thái trong họ loại đơn nguyên Trạng thái monads-tf
- thư viện data-accessor-mtl: Sử dụng Accessor để truy cập trạng thái trong lớp đơn nguyên mtl State
- thư viện data-accessor-transformers: Sử dụng Accessor để truy cập trạng thái trong máy biến áp Đơn nguyên trạng thái
Tôi tưởng tượng rằng nếu điều này tiếp tục xảy ra và ví dụ như một số gói Arrow cạnh tranh phát triển, chúng ta có thể thấy một cái gì đó như: muỗngklink-arrows-transformers, muỗngklink-arrows-monadLib, muỗngklink-tfArrows-transformers, muỗngklink-tfArrows-monadLib, ...
Và sau đó tôi lo lắng rằng nếu liên kết muỗng bị chia nhỏ, Hackage sẽ hết dung lượng đĩa. :)
Câu hỏi:
- Tại sao có nhiều gói máy biến áp đơn nguyên?
- Tại sao mtl [được coi là] không hoạt động?
- Sự khác biệt chính là gì?
- Hầu hết các gói có vẻ cạnh tranh này được viết bởi Andy Gill và được bảo trì bởi Ross Paterson. Điều này có nghĩa là các gói này không cạnh tranh mà hoạt động cùng nhau theo một cách nào đó? Và Andy và Ross có coi bất kỳ gói hàng nào của họ là lỗi thời không?
- Bạn và tôi nên sử dụng cái nào?