public/1

Description

public(Functor/Arity)
public(Functor1/Arity1, Functor2/Arity2, ...)
public([Functor1/Arity1, Functor2/Arity2, ...])

public(Functor//Arity)
public(Functor1//Arity1, Functor2//Arity2, ...)
public([Functor1//Arity1, Functor2//Arity2, ...])

Declares public predicates and public grammar rule non-terminals. A public predicate can be called from any object. A public non-terminal can be used as an argument in phrase/2 and phrase/3 messages sent from any object.

Template and modes

public(+predicate_indicator_term)
public(+non_terminal_indicator_term)

Examples

:- public(ancestor/1).

:- public(instance/1, instances/1).

:- public([leaf/1, leaves/1]).