I could not find explicitly what (:) stands for in prolog.
In interactive mode you can see the following evidence:
?- 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.
For what purpose (:) is introduced? I could not find any details for it in www. Seems that it gives another syntactic way of talking about recursive structures as Lists.
We can say that it is Right-associative, what is its priority number?
:-op(??, xfy, :).
Is there a way to list all such kind of implicit functors?
listing(op). %of course this does not work