(define length-of-c-curve
(lambda (x0 y0 x1 y1 level)
(if (= level 0)
(distance x0 y0 x1 y1)
(let ((xmid (/ (+ x0 x1) 2))
(ymid (/ (+ y0 y1) 2))
(dx (- x1 x0))
(dy (- y1 y0)))
(let ((xa (- xmid (/ dy 2)))
(ya (+ ymid (/ dx 2))))
(+ (length-of-c-curve x0 y0 xa ya (- level 1))
(length-of-c-curve xa ya x1 y1 (- level 1))))))))
length-of-c-curve needs:
(define distance
(lambda (x0 y0 x1 y1)
(sqrt (+ (square (- x1 x0)) (square (- y1 y0))))))
Q: What kind of process does length-of-c-curve generate?
A: Tree recursive