(define value (lambda (lst) (if (null? lst) 0 (max (left-value lst) (right-value lst))))) (define choose-move (lambda (lst) (let ((lv (left-value lst)) (rv (right-value lst))) (cond ((> lv rv) 'left) ((> rv lv) 'right) (else 'either))))) (define left-value (lambda (lst) (- (car lst) (value (cdr lst))))) (define right-value (lambda (lst) (left-value (reverse lst))))