(cond ((number? x) (* x factor))
((line? x) (line-scale x factor))
((shape? x) (shape-scale x factor))
(else (error "unknown type")))))
(define (translate x delta)
(cond ((number? x) (+ x delta))
((line? x) (line-translate x delta))
((shape? x) (shape-translate x delta))
(else (error "unknown type")))))