如何在prolog中定义运算符来制作列表?

Ano*_*ous 5 list operators prolog

我想以某种方式定义一个运算符"++>",以便输入"a ++> b"将列出[a,b].

我编写了以下代码,但它似乎没有完成这项工作.

++>(X,Y) :-
 [X,Y].

:- op(500,xfy,++>).
Run Code Online (Sandbox Code Playgroud)

ДМИ*_*КОВ 0

:- op(500,xfy,++>).
++>(X,Y,[X,Y]).
Run Code Online (Sandbox Code Playgroud)

并像这样使用它

?- ++>(1,2,X).
X = [1, 2].
Run Code Online (Sandbox Code Playgroud)

实际上,Prolog并不是面向计算的,因此运算符只是这些术语的同义词。您需要一个术语\3,其中一个元素是另外两个元素的列表。因此,在这种情况下不能使用 2 位运算符。顺便说一句,在这种情况下你不能使用is,因为它仅在算术情况下使用。