我想從這個符號轉換:Prolog的DCG中:從編程符號轉換爲邏輯符號
A and (B or C) equ A and B or A and C)
標準邏輯符號即之類的東西and(A,B), or(A,B), neg(A)...
我認爲我做的好方法它會使用DCGs(我構想這個問題是因爲我想練習DCGs)。任何想法爲什麼我的轉換不起作用?到目前爲止,我剛剛寫了析取和情況,當我們得到一個變量。我想要的答案應該是(atom(X),atom(Y))。
convert1(atom(X)) --> [X], {var(X)},!.
convert1(or(X,Y)) --> convert1(X), [or], convert1(Y).
test_convert1(F) :-
phrase(convert1(F), [X, or, Y]).
謝謝larsman,啊,真是太傻了。但這並沒有解決我的問題。將代碼放在這裏時,我只是做了一個複製/粘貼錯誤。不過謝謝。 – ale 2011-01-07 17:35:25