額外的論點

額外的引數通過修飾派生樹將結果新增到 DCG 子句的謂詞中。例如,可以建立一個代數語法來計算最後的值。

給定支援操作新增的語法:

% Extra arguments are passed between parenthesis after the name of the DCG clauses.
exp(C) --> int(A), [+], exp(B), {plus(A, B, C)}.
exp(X) --> int(X).
int(X) --> [X], {integer(X)}.

可以驗證和查詢此語法的結果:

?- phrase(exp(X), [1,+,2,+,3]).
X = 6 ;