Due: Friday, March 18th, 2011 9:10am
Convert the following sum-widget function (which sums the numbers in a widget) to tail form:
;; A widget is either
;; - num
;; - (make-single num widget)
;; - (make-double num widget widget)
(define-struct single (v rest))
(define-struct double (v left right))
(define (sum-widget w)
(match w
[(? number?) w]
[(single v rest) (+ v (sum-widget rest))]
[(double v left right) (+ v
(sum-widget left)
(sum-widget right))]))| Last update: Thursday, April 7th, 2011mflatt@cs.utah.edu |