SICP sqrt 空指针异常
我在 Clojure 中实现一些开始的 SICP 代码时遇到了意外的 NullPointerException。特别是,我想实现 1.1.7 节中的迭代平方根过程。 代码如下: (defn s…
如何编写 MIT Scheme 宏来返回 lambda 形式?
我对在 MIT 方案中尝试创建这个简单的(在 Common Lisp 中)宏的等价物感到困惑: (defmacro funcify (exp) `(lambda (x) ,exp)) 这是一个简单的个人…
C# 开发人员开始 SICP - 建议的开发环境?
我终于开始阅读SICP了。 我下载了GNU/MIT计划 看来我需要在 Edwin 编辑器中工作,我相信当你习惯它时它会很棒,但是我真的不想在学习 Scheme 的同时学…
像快速失败测试一样运行 SICP 方案文件
经过几年的编程,似乎是时候最终攻击SICP了。然而,我不想在 Emacs 中编辑和运行所有内容,而是使用不同的编辑器和简单的 makefile 运行所有练习。这…
运行基于 SICP 模式匹配规则的替换代码
我在网上找到了本课的代码(http://groups.csail.mit.edu/mac/ftpdir/6.001-fall91/ps4/matcher-from-lecture.scm),我玩得很开心尝试调试它。该代码…
使用 Clojure 帮助建立替换模型 [Sicp]
我正在学习 sicp 书,我对程序的替换模型有疑问: (defn A [x,y] (cond (= y 0) 0 (= x 0) (* 2 y) (= y 1) 2 :else (A (- x 1) (A x (- y 1))))) 该…
python延迟执行
要在 Lisp 中实现 流作为延迟列表,它是 推荐使用Lisp 宏。 (defmacro cons-stream (a b) (cons ,a (delay ,b))) (defmacro delay (expr) `(memo-proc…
使用流生成具有交替符号的数字的更好解释
这里的代码可以生成这样的数字 [1 -2 3 -4 5 -6 7 -8 9 -10 ...] (define (integers-starting-from n) (cons-stream n (stream-map - (integers-start…
为什么 apply 对于 Lisp 评估器如此重要?
我已经阅读了SICP的第4章,刚刚发现第一节列出了实现评估器最重要的函数,eval和apply,我明白eval 非常重要,但是为什么apply如此重要呢?对于某些语…
为什么在 Clojure 中尝试使用辛普森规则时会出现强制转换错误?
我正在尝试使用 Clojure 完成 SICP 中的一些练习,但我当前执行辛普森规则的方法(例如 1-29)出现错误。这与懒惰/急切的评估有关吗?关于如何解决这…
方案,SICP,R5RS,为什么延迟不是特殊形式?
这是关于 SICP 的第 3.5 章,其中正在讨论流。这个想法是: (cons-stream 1 (display 'hey)) 不应该评估 cons-stream 的第二部分,因此它不应该打印“…
如何获取 SICP、Scheme、练习 2.78 等中的 put 和 get 函数
我正在尝试在 SICP 中做练习 2.78,但 put 和 get 函数未知。我尝试过多种语言,比如相当大、racket、r5rs、mit-scheme、mzscheme等。我什至下载了SIC…
SICP汽车/CDR练习题问题
我在这里尝试 SICP 的“在线导师”:http://icampustutor.csail.mit.edu/6.001-public/tutor.cgi?op=registration-page 我正在查看以下问题: 假设我…