博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【SICP练习】46 练习2.5
阅读量:7129 次
发布时间:2019-06-28

本文共 387 字,大约阅读时间需要 1 分钟。



练习2.5

这道题的意思是有一个新的cons,其接受两个参数a、b,并且返回(2^a)*(3^b)。这个比较容易实现了。

(define (cons a b)

   (* (expt 2 a) (expt 3 b)))

(cons 2 2)

;Value: 36

根据题中的意思,并将其与car和cdr类比,得知car是要分离出2^a,cdr是要分离出3^b。

(define (car x)

  (if (= 0 (remainder x 2))

     (+ 1 (car (/ x 2)))

      0))

(define (cdr x)

   (if (= 0 (remainder x 3))

      (+ 1 (cdr (/ x 3)))

       0))

测试一下咯。

(define x (cons 2 2))

;Value: x

(car x)

;Value: 2

(cdr x)

;Value: 2

转载地址:http://vprel.baihongyu.com/

你可能感兴趣的文章
Netstat 连接状态记录
查看>>
【服务端】Apache MiNa 实现多人聊天室
查看>>
Spring Boot @Scheduled 执行两遍
查看>>
我的友情链接
查看>>
2.2.0-ContainersMonitorImpl的报错解决
查看>>
saltstack(十一)runners
查看>>
第11课:Spark Streaming源码解读之Driver中的ReceiverTracker架构设计以及具体实现彻底研究...
查看>>
使用showmap分析android进程内存占用情况
查看>>
PHP的"php://input"和$HTTP_RAW_POST_DATA 和$_POST的关系
查看>>
解决ERROR: % Invalid input detected at '^' marker.
查看>>
webpack 2 打包实战
查看>>
我的友情链接
查看>>
parted解决超大容量磁盘分区 GPT分区表
查看>>
我的友情链接
查看>>
深入浅出JSONP--解决ajax跨域问题
查看>>
2014-02-23,LAMP-ThinkPHP听课笔记
查看>>
oracle 脚本(1)-清空当前用户下所有表的数据
查看>>
即可去除桌面图标阴影
查看>>
BlockingQueue详解
查看>>
SVN入门及配置使用
查看>>