博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sicp第一章部分习题解答
阅读量:6819 次
发布时间:2019-06-26

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

(begin    (load "util.scm")    ;ex 1.16 计算b的幂    (define (_expt product b n maxn)        (if (= n maxn) product         (if (<= (* n n) maxn) (_expt (* product product) b (+ n n) maxn)          (_expt (* product b) b (+ n 1) maxn))))    (define (fast-expt b n)        (if (<= n 0) 1            (_expt b b 1 n)))    ;ex 1.11    (define (ex1-f n)        (cond ((< n 3) n)            (else                (+ (ex1-f (- n 1)) (* 2 (ex1-f (- n 2))) (* 3 (ex1-f (- n 3)))))))                (define (expmod base exp m)      (cond ((= exp 0) 1)            ((even? exp)             (remainder (square (expmod base (/ exp 2) m))                        m))            (else             (remainder (* base (expmod base (- exp 1) m))                        m))))        ;    (define (expmod base exp m);        (remainder (fast-expt base exp) m))    (define (fermat-test n)      (define (try-it a)        (= (expmod a n n) a))      (try-it (+ 1 (random (- n 1)))))    (define (fast-prime? n times)      (cond ((= times 0) true)            ((fermat-test n) (fast-prime? n (- times 1)))            (else false)));    (define (sum term a next b);      (if (> a b);          0;          (+ (term a);             (sum term (next a) next b))))    ;ex 1.30    (define (sum term a next b)        (define (iter a result)            (if (> a b)                result                (iter (next a) (+ (term a) result))))        (iter a 0))    ;ex 1.31        (define (product term a next b)        (define (iter a result)            (if (> a b)                result                (iter (next a) (* (term a) result))))        (iter a 1))    ;ex 1.32        (define (accumulate1 combiner null-value term a next b)        (define (iter a result)            (if (> a b)                result                (iter (next a) (combiner (term a) result))))        (iter a null-value))    ;ex 1.33    (define (filtered-accumulate filter combiner null-value term a next b)        (define (iter a result)            (if (> a b)                result                (if (filter a)                    (iter (next a) (combiner (term a) result))                    (iter (next a) result))))        (iter a null-value))            (define (inc n) (+ n 1))    (define (cube x) (* x x x))    (define (sum-cubes a b)      (sum cube a inc b))    (define (identity x) x)    (define (sum-integers a b)      (accumulate1 + 0 identity a inc b))    (define (product-integers a b)      (accumulate1 * 1 identity a inc b))    (define (sum-integers-even a b)      (filtered-accumulate even? + 0 identity a inc b))    (define (product-integers-even a b)      (filtered-accumulate even? * 1 identity a inc b))      ;    (define (sum-integers a b);      (sum identity a inc b));    (define (product-integers a b);      (product identity a inc b))      )

 

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

你可能感兴趣的文章
003-Go初探Iris
查看>>
Spark(一): 基本架构及原理
查看>>
ASPNETCOREAPI 跨域处理 SQL 语句拼接 多条件分页查询 ASPNET CORE 核心 通过依赖注入(注入服务)...
查看>>
微信小程序录音实现
查看>>
remove namespace from xml config file
查看>>
<转>从SRCNN到EDSR,总结深度学习端到端超分辨率方法发展历程
查看>>
excel 获取中文拼音首字母
查看>>
Mvvm简介
查看>>
云态势感知产品 - 沙箱高级威胁检测
查看>>
Window配置Redis环境和简单使用
查看>>
asp.net正则匹配嵌套Html标签
查看>>
mybatis表关联一对多
查看>>
Amazon RDS 上的 Microsoft SQL Server » 导入和导出 SQL Server 数据库
查看>>
微信小程序——时间戳的转换及调用
查看>>
【RS】Modeling User Exposure in Recommendation - 在推荐中建模用户的暴露程度
查看>>
Kibana5.6安装
查看>>
VS2013编译OpenSSL
查看>>
Java多线程-线程池ThreadPoolExecutor构造方法和规则
查看>>
Solr字段类型field type的定义
查看>>
项目微管理29 - 转正
查看>>