我想了解序言和明確的語法語法,但我很難理解他們兩個。非常基本的dcg序言語法
我真的想了解如何使用DCG語法...
這裏我有兩個例子:
第一個實際上是在這個論壇上,但有一個額外的問題,另一個問題的代碼:
的代碼是這樣的:
s --> first, operator, second.
first --> [X].
operator --> ['+'].
second --> [X].
當Prolog是問這個,它返回true/false,但我不能爲生命我想出瞭如何實際修改這個「綁定」的值,所以如果被問到s(X,[2,+,2],[])。它會返回第一個值,所以而不是返回true它會說X = 2
無論如何回到實際問題。我在正常序言中有一些規則,這是其中之一;它實際上並沒有做任何事情,只是作爲一個例子。
do(X, Y, [H|T], Sum):-
H == 1, %check if H is 1
X = H,
Y = T,
Additional is H+5,
Sum is Additional+Additional.
基本上,我問,如果有人可以翻譯這DCG這樣我就可以嘗試理解DCG的基本語法!我嘗試閱讀一些教程,但我覺得我沒有得到任何明智的...