Ano*_*ous 5 list operators prolog
我想以某种方式定义一个运算符"++>",以便输入"a ++> b"将列出[a,b].
我编写了以下代码,但它似乎没有完成这项工作.
++>(X,Y) :-
[X,Y].
:- op(500,xfy,++>).
Run Code Online (Sandbox Code Playgroud)
:- 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,因为它仅在算术情况下使用。