SICP1.3 MIT(PLT) Scheme实现(Lisp)

来源:互联网 发布:白色车牌js是什么意思 编辑:程序博客网 时间:2024/05/21 17:27


题目要求给出的函数需要完成以下三件事:

  1. 写一个函数,接受三个数作为参数
  2. 判断三个数中较大的两个数
  3. 计算较大两个数的平方和(两个数的平方之和)

我们从后往前,一步步完成这三个任务。

CSDN没有Lisp。用Python的标记了

#lang racket;;SICP 1.3;;try 1(define (square x)(* x x))(define (sum x y)(+(square x)(square y)))(define (sum-largest x y z)  (cond ((= (min x y z) x) (sum y z))        ((= (min x y z) y) (sum x z))        ((= (min x y z) z) (sum x y))));;try 2(define (largest-three x y z)  (if (>= x y)      (sum x (if (>= y z) y z))      (sum y (if (>= x z) x z))));;testing 1(sum-largest 2 3 6)(sum-largest 5 8 12);;testing 2(largest-three 4 8 75)

0 0