I manage to fail pushing the code earlier. It is fixed now. Happy Hacking
/stefan

On Sat, Feb 13, 2016 at 3:36 PM, Stefan Israelsson Tampe <
[email protected]> wrote:

> Hey Guilers
>
> My potluk contibution is tp implement attributed variables for minikanren
> ontop af the source written by  William E. Byrd.
>
> You can find the source at https://gitlab.com/tampe/attributed-minikanren
>
> The source containes examples using attributed variables to implement =/=
> symbolo numbero absento freezeo and wheno
>
> API
> (define AttributeId  (make-attribute unify-fkn portray-fkn)
>
> (unify-fkn var data val lam)
> var is the varibale that is unified (not yet unified at the execution of
> this fkn) data is the data associated with AttributedId for variable var
> and val is the value that var will be unified to and lam is a variable
> that can be bound to a predicate to be executed after the unification have
> been taken.
>
> (portray-fkn var data s)
> Return a list of  representations of attribuete AttributedId with data
> data for variable var. s is the variable binding stack.
>
> (get-attr var id data)
> Get data associated with attributed id if no attribute exists fail
>
> (put-attr var id data)
> Put attributed data data of kind id to variable var.
>
> New Examples
> (wheno (cons test1 lam1) (cons test2 lam2) u1 u2 ...)
> If u1 u2 ... is bound then before bounding test1 will by tried with no
> unification as a result and if success lam2 will be executed else the
> binding will fail
> then the variable will be bound and test2 lam2 combo will be tried
> similarly, the conses can be repaced with #f to indicate a void semantics.
>
> (freezeo u lam1 lam2)
> before the binding of u lam1 will be tried and after the binding of u lam2
> will be tried.
>
> The rest of the constraints was implemented by other means before and is
> known please read the documentation by  William E. Byrd.
>
> Regards
> Stefan
>
>
>

Reply via email to