[ The ECLiPSe Libraries | Reference Manual | Alphabetic Index ]

library(suspend)

Basic coroutining with triggering on instantiation, binding, constraining

Predicates

?Expr1 #< ?Expr2
The integer value of Expr1 is less than the integer value of Expr2.
?Expr1 #<= ?Expr2
The integer value of Expr1 is lesser or equal to the integer value of Expr2.
?Expr1 #= ?Expr2
The integer value of Expr1 is equal to the integer value of Expr2.
?Expr1 #=< ?Expr2
The integer value of Expr1 is lesser or equal to the integer value of Expr2.
?Expr1 #> ?Expr2
The integer value of Expr1 is greater than the integer value of Expr2.
?Expr1 #>= ?Expr2
The integer value of Expr1 is greater or equal to the integer value of Expr2.
?Expr1 #\= ?Expr2
The integer value of Expr1 is not equal to the integer value of Expr2.
?Vars :: ?Range
Constrain Vars' binding to fall within the interval Range
?Expr1 < ?Expr2
The value of Expr1 is less than the value of Expr2.
?Expr1 =:= ?Expr2
The value of Expr1 is equal to the value of Expr2.
?Expr1 =< ?Expr2
The value of Expr1 is lesser or equal to the value of Expr2.
?Expr1 =\= ?Expr2
The value of Expr1 is not equal to the value of Expr2.
?Expr1 > ?Expr2
The value of Expr1 is greater than the value of Expr2.
?Expr1 >= ?Expr2
The value of Expr1 is greater or equal to the value of Expr2.
compare_instances_suspend(?, ?, ?)
No description available
delayed_goals_number_suspend(?, ?)
No description available
integers(?Vars)
Constrain Vars to be integers
portray_delayed_goals(?, ?)
No description available
reals(?Vars)
Constrain Vars to be floats
suspensions_suspend(?, ?, ?)
No description available
tr_if_suspend(?, ?, ?)
No description available
unify_suspend(?, ?)
No description available

Other Exports

export meta_attribute(suspend, [unify : unify_suspend / 2, compare_instances : compare_instances_suspend / 3, suspensions : suspensions_suspend / 3, delayed_goals_number : delayed_goals_number_suspend / 2])
export macro(if / 2, tr_if_suspend / 3, [clause])
export portray(delay_until_ground / 3, portray_delayed_goals / 2, [goal])

Description

This library implements basic primitives for data-driven computation. It implements the attribute suspend with three suspension lists:
inst
woken when variable is instantiated.
bound
woken when variable is bound, even to an other variable.
constrained
woken when variable is (further) constrained. This is triggered by the notify_constrained built-in.
These three lists can be used as waking conditions in the suspend/3,4 built-in. Variable using the suspend-attribute do not have to be declared specially, the attribute is implicitly created when needed.

This module also implements suspending versions of the simple arithmetic constraints (>/2, #>/2, etc). These all suspend until all their variables have been instantiated, then they wake up and test the condition, succedding or failing as appropriate.

About


Generated from suspend.eci on Wed May 15 03:41:11 2002