foo(X, Y) = foo(a, a)
|
X = Y = a
|
foo(X, Y) = foo(a, X)
|
X = Y = a
|
foo(X, Y) = foo(Y, X)
|
X = Y
|
mother(mary, X) = mother(Y,
father(Z))
|
Y = mary, X = father(Z)
|
mother(X, Y) = mother(Y, father(X))
|
X = Y = father(X), or more
accurately,
X = Y =
father(father(father(father(...))))
(This is a recursive data structure that is
legal but not recommended.)
|
[X | Y] = [a, b, c]
|
X = a, Y = [b, c]
|
[X, Y | Z] = [a, b,
c]
|
X = a, Y = b, Z = [c]
|
add(add(1, 2), add(3, 4)) = add(X, add(Y,
Z))
|
X = add(1, 2), Y = 3, Z = 4
|
add(X, add(Y, Z)) = add(add(X, Y),
Z)
|
X = add(X, Y), Z = add(Y, Z), that
is,
X = add(add(add(..., Y), Y), Y), Z = add(Y,
add(Y, add(Y, ...)))
|
p(X, Y, Z) = p(q(Y), r(Z), foo) |
X = q(r(foo)), Y = r(foo), Z = foo |
|