Unhappy with the conclusion of this article, I began to develop a framework for lazy functional-logic programming in Haskell that allows to compare different search strategies in an in other respects identical environment. Specifically, I aim at comparing complete strategies like breath-first search or FBackTrack (cf. aforementioned articel) w.r.t. their run-time and memory requirements. Unlike described earlier, the combination of laziness and nondeterminism should conform to Call-Time Choice semantics without prohibiting compiler optimizations due to side effects.
uncommented sources to play with:
- examples.hs — examples from this article and more
- FLP.hs — combinators for lazy functional-logic programming
- SearchTree.hs — search trees with breath first search
- Fresh.hs — different implementations of fresh references
- OwnUnique.hs — unique integer supply with
unsafeInterleaveIO

