Logtalk reference manual
Predicate directive: meta_predicate/1

meta_predicate/1

Description

meta_predicate(MetaPredicate)

Declares meta-predicates, i.e., predicates that have arguments that will be called as goals. An argument may also be a closure instead of a goal if the meta-predicate uses the call/N Logtalk built-in methods to construct the actual goal from the closure and the additional arguments.

Meta-arguments which are goals are represented by the atom :: (for consistency with the message sending operators). Meta-arguments which are closures are represented by a positive integer, N, representing the number of additional arguments that will be appended to the closure in order to construct the corresponding meta-call. Normal arguments are represented by the atom *.

Template and modes

meta_predicate(+meta_predicate_mode_indicator)

Examples

:- meta_predicate(findall(*, ::, *)).

:- meta_predicate(forall(::, ::)).

:- meta_predicate(maplist(2, *, *))