The pipe operator in prolog returns one or more atomic Heads and a Tail list.
?- [a,b,c] = [a,b|[c]].
true.
Nesting multiple pipes in a single match can be done similar to this:
?- [a,b,c] = [a|[b|[c]]].
true.
What does the statement [a|b|c]
infer about a, b and c?
EDIT
So far, all I can deduce is:
?- [a,b,c] = [a|b|c].
false.
I am more interested in any techniques to find the answer rather than to answer this borderline useless question.
EDIT2
I'm clearly not too familiar with prolog, a simple assignment answered my question...
?- R = [a|b|c].
R = [a| (b'|'c)].
What exactly is going on with (b'|'c)
?