2011-09-21 28 views
5

Có một gói tiêu chuẩn (hoặc ít nhất là thường được sử dụng) với một đơn nguyên cho hàng đợi FIFO không? Tôi đọc về this one trong một bài báo một thời gian trước đây, và tôi đã sử dụng nó một vài lần, nhưng tôi muốn dừng lại reimplementing bánh xe (đó là niềm vui, nhưng không hiệu quả).Haskell: FIFO monad

+1

có liên quan? http://hackage.haskell.org/package/control-monad-queue – sclv

+0

sclv: Vô cùng! Sự khác biệt có vẻ là việc sử dụng các sự tiếp tục thay vì gói nó thành một đơn nguyên. Có vẻ như tôi đã chấp nhận câu trả lời của Sjoerd quá sớm. – rampion

+0

Ok, tôi đang gửi nó làm câu trả lời. – sclv

Trả lời

2

Có một phiên bản tiện lợi của hàng đợi corecursive trên hackage: http://hackage.haskell.org/package/control-monad-queue

tôi sẽ không gọi nó là tiêu chuẩn bằng bất kỳ phương tiện nào, nhưng chắc chắn nó phản ánh một số tiền hợp lý công việc và thử nghiệm.

Bài viết về trình đọc đơn vị được liên kết là một bài đọc rất hay.

4

Tôi không nghĩ là có. Tôi sẽ sử dụng một đơn vị State với một thùng chứa Seq làm trạng thái.

+0

Tôi giả sử - Tôi chỉ cảm thấy hoán đổi với O (1) cho phân bổ O (1). – rampion

+0

Chắc chắn sử dụng 'Seq'. Xem http://johnlato.blogspot.com/2011/07/circular-buffers.html để biết thêm thông tin. –

+0

@ John-L: những thứ hay - nhưng tôi chỉ muốn FIFO thuần túy. – rampion