parameter(Number, Term)
Used in parametric objects (and parametric categories), this private method provides runtime access to parameter values by using the argument number in the object (or category) identifier. This predicate is implemented as a unification between its second argument and the corresponding implicit execution-context argument in the predicate containing the call. For parametric objects, this unification occurs at the clause head, not at the clause body. See also this/1.
parameter(+integer, ?term)
instantiation_errortype_error(integer, Number)type_error(compound, Object)domain_error(not_less_than_zero, Number):- object(box(_Color, _Weight)).
...
color(Color) :- % this clause is translated into a fact
parameter(1, Color). % upon compilation
heavy :-
parameter(2, Weight), % after compilation, the >/2 call will be
Weight > 10. % the first condition on the clause body
...