On Jun 18, 2009, at 9:57 AM, Sjoerd Visscher wrote:

This is my first package on Hackage, so any comments are welcome!

It is not only pleasingly elegant but also quite useful:

Your Monad and MonadPlus instances lead me to an interesting observation. Various strategies for non-deterministic search can be implemented using FMList by expressing failure and choice via a Monoid instance.

I have just finished a revision of a paper that explains how to factor two-continuation based backtracking (and other strategies) into a continuation monad transformer and a type class for non-deterministic computations (I'd be glad to receive comments!).

    http://www-ps.informatik.uni-kiel.de/~sebf/pub/atps09.html

Now I recognise that one can also use FMList as the part that provides return and >>= and any Monoid for failure and choice.

Especially, one can implement breadth-first search (bfs) using a monoid that collects levels of a search tree and iterative deepening depth-first search (idfs) using a monoid that represents depth-bounded computations.

I have updated my package level-monad to use your library and monoids:

    http://hackage.haskell.org/package/level-monad

The employed Monoid instances do not satisfy any monoid law. However, these are the simplest implementations of bfs and idfs that I am aware of, so I don't care very much ;)

Sebastian


--
Underestimating the novelty of the future is a time-honored tradition.
(D.G.)



_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to