2011-09-21 27 views
5

Esiste un pacchetto standard (o almeno comunemente usato) con una monade per le code FIFO? Ho letto su un foglio qualche tempo fa, this one, e l'ho usato un paio di volte, ma mi piacerebbe smettere di reimplementare le ruote (è divertente, ma improduttivo).Haskell: FIFO monad

+1

correlati? http://hackage.haskell.org/package/control-monad-queue – sclv

+0

sclv: Estremamente! La differenza sembra essere l'uso delle continuazioni piuttosto che avvolgerle in una monade. Sembra che abbia accettato la risposta di Sjoerd troppo presto. – rampion

+0

Ok, lo sto inviando come risposta. – sclv

risposta

2

C'è una versione elegante di code corecursive su hackage: http://hackage.haskell.org/package/control-monad-queue

io non lo chiamerei standard con qualsiasi mezzo, ma riflette certamente una buona dose di lavoro e test.

L'articolo di lettura di un lettore di lettura è anche un'ottima lettura.

4

Non credo che ci sia. Vorrei utilizzare una monade State con un contenitore Seq come stato.

+0

Suppongo - Mi sentirei strano scambiare O (1) per O (1) ammortizzato. – rampion

+0

Utilizzare decisamente 'Seq'. Vedi http://johnlato.blogspot.com/2011/07/circular-buffers.html per ulteriori informazioni. –

+0

@ John-L: roba buona - ma voglio solo FIFO puro. – rampion