2011-04-26 33 views
24

Có nhiều thư viện biến thế đơn nguyên khác nhau trên Hackage. Một vài người dường như chú ý nhiều hơn những người khác. Để đặt tên một vài: mtl (phiên bản hiện tại tùy thuộc vào máy biến áp vì lý do nào đó), máy biến áp, monadLib, monads-tf, mtlx, contstuff.Thư viện máy biến áp Monad - sử dụng thư viện nào?

Nên chọn cái nào và tại sao? Các tính năng độc đáo của chúng là gì? Điều gì về hiệu suất?

+2

Để trả lời một điểm tầm thường: Tôi tin rằng 'mtl' đang được loại bỏ dần theo hướng ưu tiên của' máy biến áp'. Bước hiện tại trong quá trình này là thay thế nó bằng một wrapper mỏng xung quanh 'máy biến áp', do đó phụ thuộc. –

+5

@camccann: 'mtl' cung cấp nhiều chức năng hơn' máy biến áp' và tương đương với 'máy biến áp' +' monads-fd' (hiện không còn được dùng nữa). 'transformers' cung cấp càng nhiều càng tốt trong gói Haskell-98, với chức năng bổ sung (chủ yếu là nhiều phiên bản) được cung cấp bởi' mtl', hoặc các gói thay thế nếu muốn (ví dụ: 'monads-tf'). –

+0

@ John L: Ồ, vì vậy 'mtl' có hiệu quả thay thế' monads-fd', sau đó? Cảm ơn bạn đã làm rõ, tôi hơi muộn một chút. –

Trả lời

16

Các Haskell Platform chỉ định mtltransformers làm chuẩn.

Nếu bạn không chắc chắn, bạn chỉ nên sử dụng mtl.

Tuy nhiên, nếu bạn có lý do kỹ thuật cụ thể để xem các thư viện mới, họ có xu hướng giải quyết các vấn đề hoặc thêm các tính năng mới vào mtl. monadLib nói riêng có một số tính năng mới.

+2

Lý do cơ bản đằng sau việc chọn mtl của HP là gì? – Tener

+0

Đây là thư viện đơn nhất, được sử dụng rộng rãi nhất và được hiểu rõ nhất. –

+2

... ở đâu, [phụ thuộc vào Hackage] (http://bifunctor.homelinux.net/~roel/hackage/packages/archive/revdeps-list.html), "được sử dụng rộng rãi nhất" có nghĩa là một cái gì đó như "một đơn đặt hàng độ lớn hơn tất cả những người khác ngoài 'máy biến áp' kết hợp". –

Các vấn đề liên quan