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



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

  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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值