sitelogo
phrase/2

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.


Up read on...
scroll to top managed with ubiCMS