LispUser.net: プログラミング・アート

翻訳につっこむのもあれだけど、どちらもおかしくないかな…
(sum-square-largest 6 6 6)
とかすると、前者は期待していない動作に、後者は再帰が止まらないー。
正しくはこう?

(define (sum-square-largest x y z)
  (cond ((and (>= y x) (>= z x)) ;; y and z are largest
         (+ (* y y) (* z z)))
        ((and (> x y) (> z y)) ;; x and z are largest
         (+ (* x x) (* z z)))
        (else ;; x and y are largest
         (+ (* x x) (* y y)))))

(define (sum-square-largest x y z)
  (cond ((and (<= x y) (<= x z)) ;; x is smallest
         (+ (* y y) (* z z)))
        (else (sum-square-largest y z x))))