私は最近Prologについて学び、中置演算子を定義するために使用される3つのタイプが混乱していることに気付きました。
演算子のタイプを指定するときのxfx、xfy、yfxの違いは何ですか?私は問題についてグーグルで検索しましたが、有用なものは何も見つかりませんでした。
Prologで次のコードを入力してみました:
:- 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
結果は私に違いを示さなかった。