Hi,
David Menendez wrote:
As you noticed, you can get somewhat better performance by using the
combinators that convert to S.Set internally, because they eliminate
redundant computations later on.
"Somewhat better"? My example was three times faster, and I guess that
the fast variant is O(n) and the slow variant is O(n²). So I expect that
for some applications, the Set interface is more than fast enough and
the MonadPlus-interface is much too slow.
(Why is unioned faster then numbers? Is union doing some rebalancing? Can I
trigger that effect directly?)
It's because mplus a b>>= f turns into mplus (a>>= f) (b>>= f),
whereas unioned takes the union before calling f.
Here, you compare mplused to unioned, but in the parentheses, I asked
about numbers and unioned (from my last email).
Tillmann
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe