SICP問題1.3

;; 必要な関数
(define (square x) (* x x))
(define (sum-of-square x y) (+ (square x) (square y)))
;; 比較は等号つけとかないと同じ数字を渡した時に無限ループになる
(define (sum-of-large-two-numbers-square x y z)
  (cond ((and (>= x y) (>= y z)) (sum-of-square x y))
        ((and (>= x y) (>= z y)) (sum-of-square x z))
        (else (sum-of-large-two-numbers-square y x z))))

もう少し整理してみる。

(define (sum-of-large-two-numbers-square x y z)
  (if (> x y)
      (sum-of-square x (if (> y z) y z))
      (sum-of-square y (if (> z x) z x))))