我无法明确找到(:)代表prolog.
在交互模式中,您可以看到以下证据:
?- display(a:b).
:(a,b)
true.
?- display([a,b,c]).
.(a,.(b,.(c,[])))
true.
?- display(a:b:c:[]).
:(a,:(b,:(c,[])))
true.
?- a:b:REST = a:TAIL.
TAIL = b:REST.
Run Code Online (Sandbox Code Playgroud)
出于什么目的(:)引入?我在www中找不到任何细节.似乎它提供了另一种将递归结构称为列表的句法方式.
我们可以说它是右关联的,它的优先级是多少?
:-op(??, xfy, :).
Run Code Online (Sandbox Code Playgroud)
有没有办法列出所有这类隐式仿函数?
listing(op). %of course this does not work
Run Code Online (Sandbox Code Playgroud)