To note is that I published the documentation for guile-log at,

   http://c-lambda.se/guile-log

I added the documentation for the new prompt ideom as well as a section for
how one can do
parsing in guile-log. Previously there is a short description of postpone a
guile-log version of prologs dynamic variables as well as the interfaces
kanren and guile-log.

Have fun!!


On Sat, Oct 5, 2013 at 8:24 PM, Stefan Israelsson Tampe <
stefan.ita...@gmail.com> wrote:

> Hi all,
>
> Delimited continuations are a really nice feature in guile. I have now
> implemented that
> for guile-log and hence also for kanren and prolog. With it we can now do
> ------------------------
> (use-modules (logic guile-log))
> (use-modules (logic guile-log umatch))
>
> (<define> (f)
>   (<values> (i x) (<abort> 'tag (<lambda> (i x) (<cc> i x))))
>   (<or-i>
>    (<or> (<=> x i)      (<=> x ,(+ i i)))
>    (<or> (<=> x ,(- i)) (<=> x ,(- (+ i i))))))
>
>
> (<define> (test x y)
>   (<prompt> 'tag #f f
>     (<lambda> (tag next kk)
>         (<let> ((k (kk)))
>    (<zip> (x (k 1  x))
>   (y (k 10 y)))))))
>
> (<run> 10 (x y) (test x y))
>
> --> $1 = ((1 10) (-1 -10) (2 20) (-2 -20))
>
> ----------------------
> This shows delimited continuations works in combination with interleaving
> and zip constructs
> (zip evaluates all it's argumets in parallell). And I claim that the
> continuation is first class and can be used soundly everywhere above the
> <prompt> construct. I documented it in the guile-log manual for anyone
> interested in using this. To note is that this constructs is first class
> and should work quite well with all features of guile-log e.g. It will work
> well with zip like constructs, interleaving construct, postpone, storing
> and restarting and all accumulator constructs. Also it is really efficient
> in many ways and contains optimization for handling breath first search
> with storing a huge number of continuation points in e.g. the postpone
> construct.
>
> There is published paper from this year about non first class
> continuations in prolog ontop WAM.
>
> Probably guile-log should be documented and published as a scientific
> paper, anybody interested in mentoring such an effort?
>
> I will continue with implementing iso-prolog next and then do a release.
>
> Happy Hacking
>
>

Reply via email to