sicp相关内容

方案中的配对组合

我正在尝试查找使用方案中的N对列表可以进行的各种组合。以下是我到目前为止的情况: (define (pair-combinations list-of-pairs) (if (null? list-of-pairs) nil (let ((first (caar list-of-pairs)) (second (cadar list-of- ..
发布时间:2022-03-27 16:08:11 其他开发

不知道如何解决 SICP 练习 1.11

练习 1.11: 函数 f 由 f(n) = n if n 的规则定义.3 和 f(n) = f(n - 1) + 2f(n - 2) + 3f(n - 3) 如果 n >3.编写一个通过递归过程计算 f 的过程.编写一个通过迭代过程计算 f 的过程. 递归实现它很简单.但我不知道如何迭代地做到这一点.我尝试与给出的斐波那契示例进行比较,但我不知道如何将其用作类比.所以我放弃了(对我感 ..
发布时间:2022-01-24 12:07:42 其他开发

如何让方案解释器在 Emacs 中工作?

我正在学习 SICP,我希望有一个类似于交互式 Python 解释器的解释器,可以在我观看讲座和阅读本书时使用.此外,我希望这个解释器在 Emacs 中运行,这样我就可以在方案代码文件和交互式解释器等文件之间来回跳转. 但是,我对 Emacs 还很陌生,到目前为止还没有能够让它工作或找到一套明确的说明来使用它来工作. 似乎我应该能够设置它以便 Mx run-scheme 将打开一个交互 ..
发布时间:2022-01-02 20:21:41 其他开发

在 SICP 中将 lambda 用于 cons/car/cdr 定义

当我在 SICP 中遇到以下关于 cons 和 car 的“替代"定义时,我才开始觉得我对 lambda 在球拍和方案中的使用有一种模糊的理解 (定义(缺点 x y)(λ (m) (m x y)))(定义(汽车 z)(z (λ (p q) p)))(定义(cdr z)(z (λ (p q) q))) 就我的一生而言,我就是无法解析它们. 有人能解释一下如何以一种对新手来说有意义的方式解析 ..
发布时间:2021-12-23 21:52:56 其他开发

SICP示例:计数变化,看不懂

我是一名初学者,在 MIT OpenCourseWare 上学习 SICP 课程,使用视频讲座和在线提供的书籍.昨天我遇到了一个例子,它问我​​们是否可以编写一个程序来计算改变任何给定金额的方法的数量. 这个问题有一个简单的递归程序解决方案: (define (count-change amount)(cc量5))(定义(cc 数量的硬币)(cond ((= 数量 0) 1)((或( 如 ..
发布时间:2021-12-16 08:23:07 其他开发

SICP/Scheme中的apply函数

我在这里问了几个关于 Scheme/SICP 的问题,而且答案经常涉及使用 apply 过程,我在 SICP 和本书的索引中都没有看到它只列出了一次,结果是一个脚注. 一些用法的例子基本上是这个问题的每一个答案:Going从 Curry-0, 1, 2, 到 ...n. 我对 apply 的工作原理很感兴趣,我想知道是否有一些示例可用.怎么可能把apply过程改写成另一个函数,比如像这 ..
发布时间:2021-11-16 23:16:10 其他开发

“数据只是愚蠢的代码,而代码只是智能数据"是什么意思?

我刚刚在 The Structure and Interpretation of计算机程序: 数据只是愚蠢的代码,而代码只是智能数据 我不明白这是什么意思.有人可以帮助我更好地理解它吗? 解决方案 这是 SICP 的基本课程之一,也是计算机科学中最强大的思想之一.它是这样工作的: 我们认为的“代码"实际上没有能力自己做任何事情.代码仅在解释上下文中定义程序——在该上下文之 ..
发布时间:2021-09-05 20:41:17 其他开发

fast-exp 中的 SICP 1.2.4 错字?

我正在学习 SICP,我不确定这是书中的错误还是我遗漏了什么. 为了计算fast-exp,作者给出了以下规则: b^n = (b^(b/2))^2 如果 n 是偶数 b^n = b * b^(n - 1) 如果 n 是奇数 然而,当他们展示偶数 n 的实现时,我们有: ((even? n) (square (fast-expt b (/n 2)))) 我认为这是正确的. ..
发布时间:2021-07-16 19:48:01 其他开发

函数定义中的自引用

在 Y-combinator 的解释中 (https://mvanier.livejournal.com/2897.html), (定义几乎阶乘(λ(f)(λ (n)(如果(= n 0)1(* n (f (- n 1))))))))(定义阶乘A(几乎阶乘阶乘A)) 它说在标准方案中,factorialA 的定义将进入无限循环,但是实现它会出现错误,说 factorial A 未定义. 我 ..
发布时间:2021-07-16 19:47:21 其他开发

在方案中解决八皇后

我开始编写一个函数来查看一个皇后是否从棋盘上的其他位置“安全",棋盘采用 (row col) 和 1-indexed 的形式.这是我迄今为止所拥有的: (define (get-row p) (car p))(定义(get-col p)(cadr p))(定义(等于 p1 p2)(and (= (car p1) (car p2)) (= (cadr p1) (cadr p2))))(定义(安全? ..
发布时间:2021-07-16 19:47:18 其他开发

如何在 SICP、Scheme、练习 2.78 等中获得 put 和 get 函数

我正在尝试在 SICP 中做练习 2.78,但是 put 和 get 函数未知.我尝试了多种语言,比如相当大、球拍、r5rs、mit-scheme、mzscheme 等.我什至下载了 SICP 支持(http://www.neilvandyke.org/sicp-plt/),但无济于事.如何让这些功能发挥作用? 解决方案 是的,我发现 SICP 有时会因为这样的事情而有点烦人.假定存在但实 ..
发布时间:2021-07-16 19:43:28 其他开发

阅读 SICP 时使用什么解释器?

我正在阅读 http://mitpress.mit.edu/sicp/ 要运行示例代码,我应该使用哪个解释器? 我考虑过 Eclipse 的蒲公英 Lisp 插件:http://sourceforge.net/projects/蒲公英-ecl/ 也考虑过windows的Scheme http://www.gnu.org/software/mit-方案/ 我应该使用哪个? ..
发布时间:2021-07-16 19:42:35 其他开发

在使用 DrScheme 的 SICP 练习 2.26 中,为什么 cons 返回一个列表,而不是一对列表?

在 SICP 练习 2.26 中,给出了这个 Scheme 代码: (define x (list 1 2 3))(定义 y(列表 4 5 6)) 然后给出这个 cons 调用: (缺点 x y) 我预计会产生一对列表,((1 2 3) (4 5 6)) 但解释器给出了,((1 2 3) 4 5 6)...一个包含 4 个元素的列表,第一个是一个列表.为什么 y 被区别对待?我曾尝试查找其 ..
发布时间:2021-07-16 19:41:37 其他开发

sicp cons-stream 是如何实施的?

我正在研究 scip 的流部分,但对如何定义流感到困惑. 以下是我的代码: (define (memo-func 函数)(让((已经运行?假)(结果为假))(拉姆达()(如果(还没有运行?)(开始(设置!结果(函数))(设置!已经运行?真的)结果)结果))))(定义(延迟exp)(备忘录功能(拉姆达()exp)))(定义(力函数)(功能))(定义空流'())(定义(流空?流)(空?流))( ..
发布时间:2021-07-16 19:41:30 其他开发

SICP 练习 1.3 征求意见

我正在尝试通过 SICP 学习方案.练习 1.3 内容如下:定义一个过程,该过程将三个数字作为参数并返回两个较大数字的平方和.请评论我如何改进我的解决方案. (定义(大x y)(如果 (> x y) x y))(定义(p a b c)(cond ((> a b) (+ (square a) (square (big b c))))(else (+ (square b) (square (big ..
发布时间:2021-07-16 19:40:12 其他开发

Dr.Racket 中哪个 lang 数据包适合 SICP?

我正在尝试使用 SICP,我得到了一些代码.所以我开始: #lang 方案(单词'comp'uter) 返回错误:函数(字)未定义. 即使我试图将其复制到 IDE(运行)中: (定义词?(让((数字?数字?)(符号?符号?)(字符串?字符串?))(λ (x)(或(符号?x)(数字?x)(字符串?x))))) 还是一样. 我认为可能是语言版本或其他方面的某些问题. 以上来自 ..
发布时间:2021-07-16 19:39:55 其他开发

为什么这会返回一个列表 '(5) 而不是数字 5?

我正在使用 SICP,我正在做的练习要求一个返回列表中最后一个元素的过程.我实现了过程 last-pair 来做到这一点,但我很困惑为什么它返回一个列表而不是一个数字: (define (last-pair alist)(条件((空?(cdr alist))(汽车列表));如果这只是“car alist)",仍然会发生(别的(最后一对 (cdr alist))))) 当我在从 1 到 5 的整 ..
发布时间:2021-07-02 18:56:02 其他开发

“不是一个正确的列表"DrRacket 编写方案中的错误

我只是按照 SICP 3.3.3 中的说明创建表格.我写的代码运行良好. 这里是 code_0.scm: #lang 方案(需要 rnrs/base-6)(需要 rnrs/mutable-pairs-6)(定义(制作表)(列表'*表*))(定义(关联键记录)(条件((空?记录)错误的)((等于?键(caar 记录))(汽车记录))(别的(关联键 (cdr 记录)))))(定义(插入!键值表 ..
发布时间:2021-07-02 18:55:27 其他开发