chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-users] amb egg bug/confusion


From: Alan Post
Subject: Re: [Chicken-users] amb egg bug/confusion
Date: Mon, 19 Mar 2012 06:55:26 -0600

On Thu, Mar 15, 2012 at 01:38:19AM +0100, Thomas Chust wrote:
> On Wed, 2012-03-14 at 18:23 -0600, Alan Post wrote:
> > [...]
> >   (pretty-print (let ((s (amb 0 1 2))) (amb-collect s)))
> > [...]
> > produces:
> > [...]
> >   (0)
> > [...]
> 
> Hello,
> 
> to me this behaviour looks correct. amb-collect is supposed to collect
> all the different values its argument can take on, but in your example s
> is not an ambivalent expression -- the fact that s is bound to a value
> produced by amb only makes the let expression ambivalent.
> 
> To phrase it more technically: Every amb-collect creates a new dynamic
> scope for backtracking. Any ambivalence introduced in that dynamic scope
> will be resolved and the results will be collected but any outer dynamic
> scope will not be affected.
> 

Thomas, John,

Thank you both very much.  I did manage to start properly using the
amb egg, and completed a one-off homework assignment:

https://github.com/alanpost/permaculture-design-course/blob/master/guild/README

amb is very neat.  I'll likely throw larger datasets and more
interesting constraints at it as I continue to explore this
problem space.

-Alan
-- 
.i ma'a lo bradi cu penmi gi'e du



reply via email to

[Prev in Thread] Current Thread [Next in Thread]