Next: Rewrites Answer 6, Previous: Rewrites Answer 4, Up: Answers to Exercises

#### 3.7.56 Rewrites Tutorial Exercise 5

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.