
On 11/3/10 12:34 AM, Gregory Crosswhite wrote:
On 11/2/10 8:37 PM, wren ng thornton wrote:
Though I would suggest you look at the LogicT library instead of using actual lists... Also, you may be interested in reading the LogicT paper[2] or this paper[3] about search combinators in Haskell. Both offer a number of optimizations you should be aware of.
I considered it, but wasn't there discussion recently about how LogicT is a lot slower than the list monad?
In my experience it's always been faster. Though, of course, it will depend on the shape of your programs. If you need things like fair interleaving, do note that it's quite hard to get right and LogicT has already done the work for you--- both for Logic/LogicT and [], so even if you do use lists you may still want to use the logict package. Besides, it's simple enough to just use the MonadLogic class and switch between concrete types, if you need to test performance. -- Live well, ~wren