1.29
(define (inc n) (+ n 1))
(define (cube a) (* a a a))
(define (sum term a next b)
(if (> a b)
0
(+ (term a)
(sum term (next a) next b))))
(define (sum-cubes a b)
(sum cube a inc b))
(define (integral f a b dx)
(define (add-dx x) (+ x dx))
(* (sum f (+ a (/ dx 2.0)) add-dx b)
dx))
(define (simpson f a b n)
(define h (/ (- b a) n))
(define (y k) (f (+ a (* k h))))
(define (next x) (+ x 1))
(define (term i)
(+ (y (- (* 2 i) 2))
(y (* 2 i))
(* 4 (y (- (* 2 i) 1)))))
(/ (* h (sum term 1 next (/ n 2))) 3))
(define (simpson1 f a b n)
(define (get-h) (/ (- b a) n))
(define (get-y k) (f (+ a (* k (get-h)))))
(define (simpson-term k)
(cond ((= k 0) (get-y k))
((= k n) (get-y k))
((= (remainder k 2) 0) (* 2.0 (get-y k)))
(else (* 4.0 (get-y k)))))
(define (simpson-next k) (+ k 1))
(* (/ (get-h) 3.0) (sum simpson-term 0 simpson-next n)))
(sum-cubes 1 10)
(integral cube 0 1 0.01)
(simpson cube 0.0 1.0 100)
(simpson1 cube 0.0 1.0 100)
(integral cube 0 1 0.001)
(simpson cube 0.0 1.0 1000)
(simpson1 cube 0.0 1.0 1000)
1.30
(define (inc n) (+ n 1))
(define (addself n) (+ (* 2 n) 1))
(define (cube a) (* a a a))
(define (f a b result)
(cond ((< a b) (f (+ a 1) b (+ a result)))
((= a b) (+ a result))))
(define (sum term a next b)
(define (iter a result)
(if (> a b)
result
(iter (next a) (+ result (term a)))))
(iter a 0))
(f 1 3 0)
(sum cube 1 inc 10)
1.31
(define (inc n) (+ n 1))
(define (cube a) (* a a a))
(define (product term a next b)
(if (> a b)
1
(* (term a)
(product term (next a) next b))))
(define (product-iter term a next b)
(define (iter a result)
(if (> a b)
result
(iter (next a) (* result (term a)))))
(iter a 1))
(define (product-cubes a b)
(product cube a inc b))
(define (product-cubes-iter a b)
(product-iter cube a inc b))
(product-cubes 1 3)
(product-cubes-iter 1 3)
(define (double-even n)
(* 4 n n))
(define (double-odd n)
(+ (- (* 4 n n) (* 4 n)) 1))
(define (mypi n)
(* (/ (product double-even 1.0 inc n) (* (product double-odd 1.0 inc n) (* 2 n))) 2))
(mypi 80.0)
1.32
(define (inc n) (+ n 1))
(define (cube a) (* a a a))
(define (accumulate combiner null-value term a next b)
(if (> a b)
null-value
(combiner (term a)
(accumulate combiner null-value term (next a) next b))))
(define (accumulate-iter combiner null-value term a next b)
(define (iter a result)
(if (> a b)
result
(iter (next a) (combiner result (term a)))))
(iter a null-value))
(define (sum term a next b)
(accumulate + 0 term a next b))
(define (sum-iter term a next b)
(accumulate-iter + 0 term a next b))
(define (sum-cubes a b)
(sum cube a inc b))
(define (sum-cubes-iter a b)
(sum-iter cube a inc b))
(sum-cubes 1 10)
(sum-cubes-iter 1 10)
1.33
(define (square n)
(* n n))
(define (smallest-divisor n)
(find-divisor n 2))
(define (find-divisor n test-divisor)
(cond ((> (square test-divisor) n) n)
(( divides? test-divisor n) test-divisor)
(else (find-divisor n (+ test-divisor 1)))))
(define (divides? a b)
(= (remainder b a) 0))
(define (prime? n)
(= n (smallest-divisor n)))
(define (plain n) n)
(define (inc n) (+ n 1))
(define (filtered-accumulate filtered combiner null-value term a next b)
(if (> a b)
null-value
(if (filtered a)
(combiner (term a) (filtered-accumulate filtered combiner null-value term (next a) next b))
(filtered-accumulate filtered combiner null-value term (+ a 1) next b))))
(define (sum term a next b)
(filtered-accumulate prime? + 0 term a next b))
(define (sum-plain a b)
(sum plain a inc b))
(sum-plain 1 10)
(define (product-prime n)
(product plain 1 inc n))
(define (product term a next b)
(define (co-prime? i)
(if (and (= (gcd i b) 1) (< i b))
#t
#f))
(filtered-accumulate co-prime? * 1 term a next b))
(product-prime 10)
分享到:
相关推荐
《计算机程序的构造和解释》...通过解答SICP的习题,读者将深入理解这些概念,并能运用到实际的编程实践中。习题旨在促进对这些基本原理的深入思考,帮助程序员建立坚实的基础,进而在面对复杂的编程挑战时能游刃有余。
《SICP习题解答,主要第一章的内容习题答案》 SICP,全称《Structure and Interpretation of Computer Programs》(计算机程序的构造和解释),是计算机科学领域的一本经典教材,由MIT(麻省理工学院)的 Harold ...
以上就是基于文件名推测的SICP第二章练习题相关知识点。这些内容深入地涵盖了函数式编程的基础和应用,对于提升编程思维和技能大有裨益。实际的学习过程中,通过阅读和理解这些代码,结合原书的理论部分,将有助于...
在" sicp-master "这个压缩包中,可能包含的是对SICP各章节练习题的解答,包括源代码、注释和分析。这些练习通常涵盖了函数式编程的基础,如高阶函数、递归、闭包,以及更高级的主题,如过程构造、数据结构、环境...
sicp in python 中文版 sicp in python 中文版 sicp in python 中文版 !!!download>>>https://github.com/wizardforcel/sicp-py-zh
SICP中文第二版SICP中文第二版SICP中文第二版SICP中文第二版SICP中文第二版
《SICP解题集》是一份专注于探讨和解答《结构与解释程序》(Structure and Interpretation of Computer Programs,简称SICP)一书中习题的资源。SICP是计算机科学领域的一本经典教材,由Harold Abelson、Gerald Jay ...
"sicp-solutions"是一个针对该书练习题的解答集,主要使用了Scheme语言,一个Lisp方言,而具体的实现环境是mit-scheme 9.2。 Scheme语言是Lisp家族的一员,以其简洁的语法和强大的函数式编程特性闻名。在"sicp-...
《计算机程序的构造与解释》(Structure and Interpretation of Computer Programs,简称SICP)是一本备受推崇的经典计算机科学教材,由Harold Abelson和Gerald Jay Sussman撰写,并由MIT出版社出版。这本书以其深入...
scheme编译器最新版,Windows下直接安装即可运行,sicp刷题必备。祝大家早日学到sicp之精髓~
《SICP 2.2.4 节:图形语言》是计算机科学经典教材《结构与解释程序》(Structure and Interpretation of Computer Programs)中的一个重要章节,它深入介绍了如何利用编程来创建图形,以及如何设计和理解复杂的计算...
书中大量的练习题和示例代码鼓励读者动手实践,加深对概念的理解。此外,SICP还引入了许多先进的编程思想和技术,如函数式编程、递归、抽象数据类型等,这些都对现代软件开发产生了深远的影响。 #### 四、总结 ...
SICP-Python版本
SICP 使用的scheme解释器 以前叫DrScheme
《计算机程序构造和解释》(SICP,Structure and Interpretation of Computer Programs)是一本具有深远影响力的计算机...压缩包中的“SICP 北大课件”文件可能包含课件、讲义、习题解答等资料,是学习SICP的宝贵资源。
Python SICP epub版本,很适合学习抽象的思想,用Python版本比lisp更实用
《SICP》全称是《Structure and Interpretation of Computer Programs》,中文译为《计算机程序的构造和解释》。这是一本经典的计算机科学教材,由Harvard大学的 Harold Abelson 和 Gerald Jay Sussman 教授撰写,...
标题中的"PyPI 官网下载 | sicp-0.0.1b102.dev4.tar.gz"指的是从Python的官方包索引(Python Package Index,简称PyPI)上下载的一个名为"sicp"的软件包的版本号为0.0.1b102.dev4的压缩文件,其格式是tar.gz。...
本书名为《a_book_sicp_py》,是一本以Python语言为基础介绍设计模式和计算机科学基础的书籍。根据描述和部分内容,可以提炼出以下知识点: 1. 编程语言的重要性:在计算机科学的宽泛领域中,编程语言扮演着至关...