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

Reply via email to