call/1
Executes a goal
call(Goal): Executes/evaluates the new Goal.
Remarks
1) The predicate call is used to evaluate the new goal, given by its argumnent. This is the way to use a variable as subgoal.
2) This predicate has now been fixed, as regards a serious bug in the original "P.I.E." engine: - Any invocations of "call/1" with a zero-arity predicate as an argument would not run. Of course, executing 'call(true)' succeeded, when typed by the user in the messages' window, but did not succeed if executed inside the body of another existing clause. E.g. the short program "testcall(G):- call(G)" does not run properly, when G is 'true' (or any other zero-arity predicate):
% testcall/1:
testcall(G):-
call(G).
EXECUTION:
testcall(true).
No solutions
Example
Goal=..[f,2,"abc"],
call(Goal).