Simon Peyton-Jones <[EMAIL PROTECTED]> wrote:

> It certainly makes sense to do backward chaining, but I don't know any 
> Haskell implementation
> that's tried it.  It'd be more complicated in the presence of functional 
> dependencies, since we
> must "undo" any unifications done as a result of discarded searches, much 
> like the "trail" in a
> Prolog implementation.

Perhaps linear logic search could make this easier. LolliMon 
http://www.cs.cmu.edu/~fp/lollimon
shows how it can be done; additional ideas like memory management and 
concurrency might avail form
this too. I believe that it is high time to revisit logic and Haskell is an 
excellent ground for
this (e.g. multicore is essentially signal processing that can be elegantly 
solved probably only by
multivalued logic).

> To be honest I can't see myself trying this anytime soon.  Because of the 
> unification part, it'd
> be a significant structural change.  And one would > need to dig into the 
> theory to make sure that
> the algorithm was both sound and complete (finds all solutions).

Not much of help but a refreshing read: 
http://www.cs.cmu.edu/~fp/papers/tocl07.pdf

Regards,

-Andrzej



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

Reply via email to