我最近在學習有關Prolog,我發現用於定義中綴運算符混淆的三種類型。序言中綴運算符定義
指定操作符的類型時,xfx,xfy和yfx有什麼區別? 我已經搜索了關於這個問題,並沒有發現任何有用的東西。
我試着在序言中輸入以下代碼:
:- op(500,yfx,is_alive).
is_alive(A,B) :- display([A,B]).
:- op(500,xfy,is_alive2).
is_alive2(A,B) :- display([A,B]).
:- op(500,xfx,is_alive3).
is_alive3(A,B) :- display([A,B]).
和輸出:
| ?- 1 is_alive 2.
'.'(1,'.'(2,[]))
yes
| ?- 1 is_alive2 2.
'.'(1,'.'(2,[]))
yes
| ?- 1 is_alive3 2.
'.'(1,'.'(2,[]))
yes
結果表明沒有對我來說差別。
謝謝你的回答! – JasonLi 2012-02-18 11:53:42
嘗試對您的每個操作員進行操作(1 is_alive 2 is_alive 3),您將看到不同 – DaveEdelstein 2012-02-18 14:55:07