invoke* ( quot: ( env -- ? ) -- goal )


Vocabulary
logic

Inputs
quota quotation


Outputs
goala logic-goal


Word description
Creates a goal which uses the values of obtained logic variables. The difference with invoke is that quot returns t or f, and the created goal returns it. invoke* is intended to be used in a quotation. If there is a quotation in the definition of rule, logic uses the internal definition of the goal obtained by calling it.

See also
invoke

Definition


:: invoke* ( quot: ( env -- ? ) -- goal )
quot collect-logic-vars :> args quot "[ %u invoke* ]"
sprintf <pred> :> invoke*-pred invoke*-pred args logic-goal
boa :> invoke*-goal V{
{
invoke*-goal
[| env | env quot ( env -- ? ) call-effect ]
}
} invoke*-pred defs<< invoke*-goal ;