SICP Exercise 1.22
(define (timed-prime-test n)
(newline)
(display n)
(start-prime-test n (runtime)))
(define (start-prime-test n start-time)
(if (prime? n)
(report-prime (- (runtime) start-time))))
(define (report-prime elapsed-time)
(display " *** ")
(display elapsed-time))
这边使用 Drscheme时,会出错,显示没有runtime过程。
解决方法是 选择语言 PLT-MZscheme 然后将程序改为下面的:
(define (timed-prime-test n)
(newline)
(display n)
(start-prime-test n (current-milliseconds)))
(define (start-prime-test n start-time)
(if (prime? n)
(report-prime (- (current-milliseconds) start-time))))
(define (report-prime elapsed-time)
(display " *** ")
(display elapsed-time)
(display " ms "))
(timed-prime-test 100000000057)
那么这道题就是这么写了:
(define (f start count)
(cond ((= 0 count)
(newline)
(display "***** FINISHED *****")
(newline))
((timed-prime-test start) (f (+ 2 start) (- count 1)))
(else (f (+ 2 start) count))))
(define (search-for-primes a)
(f (+ a 1) 3))
(search-for-primes 1000)
分享到:
相关推荐
SICP 使用的scheme解释器 以前叫DrScheme
sicp in python 中文版 sicp in python 中文版 sicp in python 中文版 !!!download>>>https://github.com/wizardforcel/sicp-py-zh
SICP中文第二版SICP中文第二版SICP中文第二版SICP中文第二版SICP中文第二版
1. **函数式编程**:SICP强调使用函数而不是改变状态来解决问题,这使得代码更易于理解、测试和维护。函数式编程的关键概念如高阶函数、闭包、惰性求值和柯里化在解题集中会被广泛应用。 2. **Lisp语言**:SICP主要...
最后,SICP强调了程序的构造和理解,它鼓励读者以一种结构化和模块化的方式思考问题。在实现图形语言的过程中,你将学会如何分解问题,如何设计模块化的代码,以及如何通过递归和高阶函数来表达和解决复杂的计算问题...
SICP的第一章通常会介绍Lisp语言的基础,包括如何创建基本的函数,如何使用递归来处理数学问题,以及如何通过过程抽象将重复代码封装起来,提高代码的可读性和复用性。例如,可能会有求阶乘、斐波那契数列等典型的...
Python虽然并非原书中的教学语言,但由于其易读性和广泛应用,许多读者选择使用Python来实践SICP中的概念。 在Python中实现SICP的概念,可以帮助我们更好地理解函数式编程的精髓,例如高阶函数、闭包、递归以及过程...
- **迭代与循环**:虽然函数式编程倾向于使用递归,但SICP也讨论了迭代结构,如do循环和while循环。 7. **过程的组合与复合**: - **过程复合**:将简单过程组合成复杂过程,以实现更复杂的计算逻辑。 - **局部...
SICP-Python版本
本书第五章将介绍这些主题,并讲解如何将它们应用于实际问题中。 10. 编程实践和高级语言特性:本书不仅介绍了理论知识,还提供了大量的编程实践,帮助读者通过实际案例来加深理解。同时,它还包含了高级语言特性的...
如果"sicp"库被正确安装,那么在Python环境中就可以通过`import sicp`来导入并使用这个库提供的功能。 对于开发者来说,理解并使用PyPI、Python库以及版本控制是日常工作中不可或缺的技能。下载并安装库只是第一步...
4. **数据结构和抽象**:SICP介绍了各种数据结构,如列表、树和队列,以及如何使用递归和高阶函数来操作它们。此外,还讨论了如何通过抽象隐藏实现细节,提高代码的复用性和可维护性。 5. **控制结构和计算的表示**...
- **1.1.7 示例:使用牛顿法求平方根**(Example: Square Roots by Newton's Method):通过一个具体的数学问题展示如何设计算法。 - **1.1.8 过程作为黑盒抽象**(Procedures as Black-Box Abstractions):强调...
Python SICP epub版本,很适合学习抽象的思想,用Python版本比lisp更实用
3. **递归**:深入探讨递归原理,它是函数式编程中的核心概念,用于解决各种问题,如遍历数据结构、求解数学问题等。 4. **元编程**:学习如何编写可以操作和扩展自身的程序,理解和实现编译器和解释器的基本原理。...
- **过程作为通用方法 (Procedures as General Methods)**:讲解了如何使用过程来实现通用的问题解决策略。 - **返回值的过程 (Procedures as Returned Values)**:探讨了过程可以作为函数返回值的概念。 ##### 2...
5. **问题解决策略**:通过解决像八皇后这样的问题,我们可以学习如何将复杂问题分解为可管理的部分,以及如何使用编程技巧来表达解决方案。 以上就是基于文件名推测的SICP第二章练习题相关知识点。这些内容深入地...
sicp in python 中文版 sicp in python 中文版 sicp in python 中文版 download : https://github.com/wizardforcel/sicp-py-zh
2. **递归**:递归是SICP中的关键概念,用于解决各种问题。书中通过递归函数展示了如何表示和处理数据结构,如列表和树。 3. **抽象**:SICP提倡通过创建抽象层来提高代码的可读性和复用性。通过定义新类型和操作,...