與邏輯函數子工作,我想有邏輯連接詞如在序言
not(X), conj(X, Y), some(Y, K).
,我希望能夠在它們之間迭代。因此,例如我希望能夠不將(一些(Y,K))轉換爲全部(Y,而不是(K))。
我不希望他們有什麼特別的含義,我只是想用這種方式來處理邏輯公式。
這樣做的最好方法是什麼?
下面是我的代碼的實際行:
nnf(not(all(X, Y)) ,some(Z, W)) :- nnf(X, Z), nnf(not(Y), W).
所以,如果我給它not(all(a,b))
我想找回一些(一,不是(B)),但ATM我不知道怎麼弄Prolog以這種方式處理not/1
和all/2
。
嘿,謝謝你的快速回復。但我不明白你的意思。我需要能夠做到這樣的事情,給一個函數做一些類似的事情(一些(a,b)),並返回所有的(a,not(b))。 – user1066113
your_function(not(some(X,Y)),all(X,not(Y)))。對於這種特殊情況已經足夠了。你想推廣什麼? – m09