码迷,mamicode.com
首页 > 其他好文 > 详细

Structure and Interpretation of Computer Programs-Exercise 1.3

时间:2014-06-30 00:19:52      阅读:270      评论:0      收藏:0      [点我收藏+]

标签:sicp   lisp   

【问题】

Define a procedure that takes three numbers as arguments and returns the sum of the squares of the two larger numbers.

定义一个过程,它以三个数为参数,返回其中较大的两个数的平方和。

【普通版】

(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)))
        ((and (> x z) (> y z)) ;; 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))))

Program is art

Structure and Interpretation of Computer Programs-Exercise 1.3,布布扣,bubuko.com

Structure and Interpretation of Computer Programs-Exercise 1.3

标签:sicp   lisp   

原文地址:http://blog.csdn.net/jjjcainiao/article/details/35599743

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!