Well-founded IO in logic programming?
Wednesday, October 6th, 2010 07:50Has anything been done in logic programming (especially in languages not too far from the classic Prolog) which is analogous to monads and the IO monad in Haskell; that is, providing a means of performing IO or other side-effects which does not have the programmer depend on the evaluation/search order of the language?
In other words, what is to Prolog as Haskell is to ML?
Curry?
Date: 2010-10-06 12:46 (UTC)http://www-ps.informatik.uni-kiel.de/currywiki/
Mercury
Date: 2010-10-06 12:47 (UTC)Re: Mercury
Date: 2010-10-06 15:14 (UTC)(no subject)
Date: 2010-10-06 18:32 (UTC)(no subject)
Date: 2010-10-06 21:25 (UTC)Ask MarkM about Concurrent Prolog. IIRC I/O was handled as incrementally-filled-in lists, analogous to pre-monad Haskell using lazy lists, but using logic variables. Oz would be a more modern example.
Mercury's approach is more like Clean's uniqueness types than monads, IIRC.