Problem 6. Dr. Cha Len, now residing in CH (short for Switzerland), has uncovered these structure and data definitions:
(define-struct more (extras one)) ;; A More is one of: ;; -- Number ;; -- (make-more More Number)
He is a natural explorer and is now trying to design the function most, which consumes a More and produces the largest number in it.
Hint: max is picks the larger of two numbers: (max 3 10) is 10.
Solution:
;; Grader: Prof. Proulx
;; data examples: [1pt]
;; -- 3
;; -- (make-more 3 10)
;; -- (make-more (make-more 3 10) 11)
;; most : More -> Number [1pt]
;; the largest number in m
(define (most m)
(cond ;; [1pts: for 2 cond lines]
[(number? m) m]
;; [1 pt for selectors,
;; 1 for recursion]
[else (max (most (more-extras m)) (more-one m))]))
;; Examples/tests: [1 for functional example/test]
(equal? (most (make-more 10 3)) 10)