built-in method
call/1-N
ï
Descriptionï
call(Goal)
call(Closure, Arg1, ...)
Calls a goal constructed by appending additional arguments to a
closure. The upper limit for N
depends on the upper limit
for the arity of a compound term of the backend Prolog compiler.
This built-in meta-predicate is declared as a private method and thus
cannot be used as a message to an object. The Closure
argument can
also be a lambda expression or a Logtalk control construct. When using a
backend Prolog compiler supporting a module system, calls in the format
call(Module:Closure, Arg1, ...)
may also be used.
This meta-predicate is opaque to cuts in its arguments.
Meta-predicate templateï
call(0)
call(1, *)
call(2, *, *)
...
Modes and number of proofsï
call(+callable) - zero_or_more
call(+callable, ?term) - zero_or_more
call(+callable, ?term, ?term) - zero_or_more
...
Errorsï
Goal
is a variable:instantiation_error
Goal
is neither a variable nor a callable term:type_error(callable, Goal)
Closure
is a variable:instantiation_error
Closure
is neither a variable nor a callable term:type_error(callable, Closure)
Examplesï
Call a goal, constructed by appending additional arguments to a closure, in the context of the object or category containing the call:
call(Closure, Arg1, Arg2, ...)
To send a goal, constructed by appending additional arguments to a closure, as a message to self:
call(::Closure, Arg1, Arg2, ...)
To send a goal, constructed by appending additional arguments to a closure, as a message to an explicit object:
call(Object::Closure, Arg1, Arg2, ...)