Ex 2.35

(define (count-leaves t)
  (accumulate + 0 (map (lambda (x) (if (pair? x) (count-leaves x) 1)) t)))

accumulate で実装するというので、まず浮かんだのは fringe を使って木をリストにたたんでから長さを計るというものだったのだけれど、 accumulate の第三引数が map を使ったものであるということで悩んだ。
lambda 大活躍。