If x is the sum a + b, then ``nterms(`*x*`)`' must
be ``nterms(`*a*`)`' plus ``nterms(`*b*`)`'. If x
is not a sum, then ``nterms(`*x*`)`' = 1.

[ nterms(a + b) := nterms(a) + nterms(b), nterms(x) := 1 ]

Here we have taken advantage of the fact that earlier rules always
match before later rules; ``nterms(x)'` will only be tried if we
already know that ``x'` is not a sum.

Go to the first, previous, next, last section, table of contents.