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