Logtalk reference manual
Built-in method: call/1-N

call/1-N

Description

call(Goal)
call(Closure, Arg1, ...)

Calls a goal, which might be 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 back-end 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 back-end 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.

Template and modes

call(+callable)
call(+callable, ?term)
call(+callable, ?term, ?term)
...

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, ...)

See also

ignore/1, once/1, \+/1