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))))