| calls a grammar rule with the inputsymbols of a list.
phrase(+Term, +List)
phrase/2 calls a grammar rule Term with the inputsymbols listed in List.
Arguments
Term term
List list of symbols
Examples
polish(Stack, Result) -->
[X], {integer(X)}, polish([X|Stack], Result).
polish([Y,X|Stack], Result) -->
[(+)], {Z is X+Y}, polish([Z|Stack], Result).
polish([Y,X|Stack], Result) -->
[(-)], {Z is X-Y}, polish([Z|Stack], Result).
polish([Z], Z) -->
[].
main(X) :-
phrase(polish([], Result), [2,3,(+),1,(-)]),
println(['result = ', Result]).
Succeeds and prints "result = 4".
Standard
This predicate is not part of the ISO-Prolog Standard.
See also
expand_term/2.
|