Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>You'll need to measure the operations to really quantify how inefficient any given implementation of the queue operations are.</p> <p>That said, there are alternative data structures for different queue scenarios. Particularly if you're interested in either persistent or pure queues, or concurrent queues, then you have a few options.</p> <p><em>Pure data structures</em></p> <ul> <li>finger tree-based queues: <a href="http://hackage.haskell.org/package/fingertree-psqueue" rel="nofollow">http://hackage.haskell.org/package/fingertree-psqueue</a></li> <li>pure priority queues: <a href="http://hackage.haskell.org/package/pure-priority-queue" rel="nofollow">http://hackage.haskell.org/package/pure-priority-queue</a></li> <li>asymptotically optimal, provably correct queues, <a href="http://hackage.haskell.org/package/meldable-heap" rel="nofollow">http://hackage.haskell.org/package/meldable-heap</a></li> <li>queues based on binomial heaps, <a href="http://hackage.haskell.org/package/pqueue" rel="nofollow">http://hackage.haskell.org/package/pqueue</a></li> </ul> <p><em>Concurrent queues</em></p> <ul> <li>STM-based queues, <a href="http://hackage.haskell.org/package/bounded-tchan" rel="nofollow">http://hackage.haskell.org/package/bounded-tchan</a></li> <li>STM-based bounded queues, <a href="http://hackage.haskell.org/package/rolling-queue" rel="nofollow">http://hackage.haskell.org/package/rolling-queue</a></li> </ul> <p><em>Publish subscribe</em></p> <p>If you're looking at a publish/subscribe mechanism, perhaps consider a binding to zeromq:</p> <ul> <li><a href="http://www.zeromq.org/" rel="nofollow">http://www.zeromq.org/</a></li> </ul> <p>it definitely is aimed at high freq operations, and even has backs the FP community, <a href="http://www.zeromq.org/bindings:haskell" rel="nofollow">http://www.zeromq.org/bindings:haskell</a></p> <p>There are two different OCaml bindings to ZeroMQ: <a href="http://www.zeromq.org/bindings:ocaml" rel="nofollow">http://www.zeromq.org/bindings:ocaml</a></p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload