You don't want to use assert because it doesn't get undone during backtracking.
Look at the Alex Warth et al "Worlds" paper on the Viewpoints site to see a
better way to do this. (This is an outgrowth of the "labeled situations" idea
of McCarthy in 1963.)
Cheers,
Alan
>________________________________
> From: Ryan Mitchley <[email protected]>
>To: Fundamentals of New Computing <[email protected]>
>Sent: Thursday, March 15, 2012 5:02 AM
>Subject: Re: [fonc] [IAEP] Barbarians at the gate! (Project Nell)
>
>On 15/03/2012 13:01, Ryan Mitchley wrote:
>> It still doesn't fit well with a procedural model, in common with Prolog,
>>though.
>>
>>
>
>Although, it has to be said that a procedural approach can be faked with a
>combination of assertion and forward chaining.
>
>e.g.
>
>IsASquare(X, Y) iff line(X, blah), angle(blahblah) etc.
>assert IsASquare(100, 200).
>(System goes ahead and forward chains all of the subgoals, asserting facts and
>creating a square as specified. Excuse the made-up syntax.)
>
>Forward chaining doesn't come standard with micro-PROLOG (or Prolog), but can
>be added.
>
>
>Disclaimer: http://www.peralex.com/disclaimer.html
>
>
>_______________________________________________
>fonc mailing list
>[email protected]
>http://vpri.org/mailman/listinfo/fonc
>
>
>
_______________________________________________
fonc mailing list
[email protected]
http://vpri.org/mailman/listinfo/fonc