Basic Syntax.
.(car, cdr) .(1, .(2, .(3, [])))
(show diagrams)
Alternative Syntax.
.(1, .(2, .(3, []))) = [1, 2, 3]. .(1, .(2, .(3, []))) = [1 | [2, 3]]. .(1, .(2, .(3, []))) = [1 | [2 | [3]]]. .(1, .(2, .(3, []))) = [1 | [2 | [3 | []]]]. .(car, cdr) = [car | cdr].
(note trailing dot vs. dot as functor) (show diagrams)
Note "=" does not mean "assignment". Note "=" does not mean "equality test". In Prolog, "=" means unify the two terms.
A + B = +(2, 3). +(A, B) = +(2, 3). A + B = 2 + 3. =( A + B, 2 + 3).