Есть ли стандартный (или, по крайней мере, обычно используемый) пакет с монадой для очередей FIFO? Я читал около this one в газете некоторое время назад, и я использовал его пару раз, но я бы хотел прекратить повторное использование колес (это весело, но непродуктивно).Haskell: FIFO monad
ответ
Там есть отличная версия corecursive очереди на hackage: http://hackage.haskell.org/package/control-monad-queue
Я бы не назвал это стандартом любых средств, но это, безусловно, отражает изрядное количество работы и тестирования.
Связанная статья читателя монады является действительно хорошим чтением тоже.
не думаю есть. Я бы использовал монаду State
с контейнером Seq
как состояние.
Я полагаю - я просто почувствовал бы странную замену O (1) на амортизацию O (1). – rampion
Определенно используйте 'Seq'. См. Http://johnlato.blogspot.com/2011/07/circular-buffers.html для получения дополнительной информации. –
@ John-L: хорошие вещи - но я просто хочу чистого ФИФО. – rampion
связано? http://hackage.haskell.org/package/control-monad-queue – sclv
sclv: Чрезвычайно! Кажется, что разница заключается в использовании продолжений, а не в обертке монады. Похоже, я принял ответ Сьёрда слишком рано. – rampion
Хорошо, я представляю это как ответ. – sclv