首页 文章
  • 2 votes
     answers
     views

    在进行SICP练习时,DrRacket应该使用什么语言?

    我应该在DrRacket中选择什么语言才能进行SICP练习?
  • 13 votes
     answers
     views

    DrScheme中的哪种语言适用于SICP?

    我一直在DrScheme 4.2中使用SICP模块,但是哪种语言对DrScheme中的SICP有最好的支持? 有没有人在这里试过this? 谢谢 .
  • 6 votes
     answers
     views

    DrRacket口译员是否使用基于SICP练习1.5的正常顺序评估?

    必须根据以下 Value 决定: (测试0(p)) 测试定义为: (define (test x y) (if (= x 0) 0 y)) 和p定义为: (define (p) (p)) 当我评估 (test 0 (p)) 时,解释器进入无限循环,表明它正在评估 p . 这显示 normal-order evaluation ,因为在替换参数之前评估操作数 ....
  • 6 votes
     answers
     views

    SICP练习1.5和1.6

    除了问题What's the explanation for Exercise 1.6 in SICP? . 因此,Racket博士(R5RS)在有限时间内使用"if"评估sqrt-iter函数,清楚地显示正常的订单评估 . 但是,如果我使用练习1.5的例子 (define (p) (p)) (define (test x y) (if (= x 0) 0 ...
  • 8 votes
     answers
     views

    在DrRacket中编译SICP图片练习?

    我将通过SICP进行自学,并参与第2章的图片语言部分 . 我一直在使用DrRacket进行早期练习,但在尝试基于“画线”进行练习时出现编译错误本书这一部分的图片功能 . 具体来说,这段代码...... (define (segments->painter segment-list) (lambda (frame) (for-each (lambda (s...
  • 3 votes
     answers
     views

    使用DrRacket从SICP部分3.5.4运行代码

    我在运行SICP(计算机程序的结构和解释)第3.5.4节(流和延迟评估)中的示例代码时遇到了问题; SICP部分可以在这里找到:http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-24.html#%_sec_3.5.4 . 我正在使用DrRacket版本5.2.1,使用Neil Van Dyke( SICP PLaneT 1.17 )的SICP...
  • 1 votes
     answers
     views

    当我使用neil / sicp时为什么找不到`when`表格?

    我正在解决section 3.3.2 of SICP的练习-3.23,这是deque的一个实现 . 由于Racket不支持 set-car! 和 set-cdr! ,所以我使用了来自SICP Support for DrRacket的 #lang planet neil/sicp ,并编写了代码: #lang planet neil/sicp (define (make-deque) (cons...
  • 0 votes
     answers
     views

    DrRacket不运行SICP练习1.10中的Ackermann功能

    我最近开始阅读SICP,并在书中做了一些内容 . 我在命令行上安装了两个mit-scheme,稍微修补了一下,我偶然发现了DrRacket并安装了来自http://www.neilvandyke.org/racket-sicp/的SICP组件 一切都工作正常,直到我来到Excercise 1.10,当我写这个函数,因为它写在书中: (define (A x y) (cond ((= y 0) ...
  • 1 votes
     answers
     views

    DrRacket中lang sicp中的错误函数不受约束

    我使用DrRacket 6.6并使用#lang sicp,一切看起来都不错,但功能错误不存在,它说: 错误:模块中的未绑定标识符:error 为什么?
  • 12 votes
     answers
     views

    SICP例子:计数变化,无法理解

    我是麻省理工学院开放式课程的SICP课程的初学者,使用视频讲座和在线提供的书籍 . 昨天我遇到了一个例子,它询问我们是否可以编写一个程序来计算改变任何给定金额的方法的数量 . 这个问题有一个简单的解决方案作为递归过程: (define (count-change amount) (cc amount 5)) (define (cc amount kinds-of-coins) (cond ...
  • 11 votes
     answers
     views

    词汇与动态范围在SICP的环境评估模型方面

    在SICP的Section 3.2.2中执行以下代码 (define (square x) (* x x)) (define (sum-of-squares x y) (+ (square x) (square y))) (define (f a) (sum-of-squares (+ a 1) (* a 2))) (f 5) 以this diagram解释 . 每次应用函数时,都...
  • 3 votes
     answers
     views

    方案的简单库机制 - 导入实现

    我实施了一个基本方案(想想SICP) . 现在,我想添加一个基本的导入/库功能,但是无法想出办法 . 到目前为止,我认为两种方法都存在同样的障碍 . 在旧的SICP(第一版)书中有一个make-environment / package章节,也讨论了here . 这将返回一个新环境 . 我想打个电话 (import lib) 其中lib提供环境或过程名称和过程列表 . 我的问题是如何使用库提供的...
  • 2 votes
     answers
     views

    方案环境模型关闭问题

    SICP 3.2引入环境模型来取代替代模型 . 我在学习这部分时做了以下测试: (define a1 1) (define (f1) a1) (f1) ; return 1 (define (f2) (define a1 2) a1) (f2) ; return 2 (define (f3) (define a1 2) (f1)) (f3) ; return 1,not 2 最后一个表达超出了我...
  • 1 votes
     answers
     views

    词汇范围和共享对象

    考虑SICP中的 生产环境 帐户程序 . (define (make-account balance) (define (withdraw amount) (if (>= balance amount) (begin (set! balance (- balance amount)) balance) &qu...
  • 1 votes
     answers
     views

    将值绑定到环境模型中的帧

    我对评估的环境模型如何运作有点困惑,并希望有人可以解释 . SICP说: 环境模型指定:要将过程应用于参数,请创建一个包含框架的新环境,该框架将参数绑定到参数的值 . 此框架的封闭环境是过程指定的环境 . 现在,在这个新环境中,评估过程体 . 第一个例子: 如果我: (define y 5) 在全球环境中,然后打电话 (f y) 哪里 (define (f x) (set! x 1)) ...
  • 1 votes
     answers
     views

    从命令行使用SICP集合进行球拍

    我已成功为DrRacket安装了SICP包;我在GUI中使用 inc 运算符对其进行了测试 . 我按照说明here . 但是,当我在bash中运行 racket 时,使用 inc 运算符会给我一个错误 . 欢迎使用Racket v6.6 . >(inc 42)inc:undefined;不能引用未定义的标识符上下文...:/usr/share/racket/collects/racket...
  • 5 votes
     answers
     views

    在这个具体案例中,“跟踪”应该如何在Racket中运行?

    我正在使用着名的书籍SICP . 在练习1.18上发生了一件奇怪的事情 . 我写了这段代码: (define (double n) (* 2 n)) (define (halve n) (/ n 2)) (define (fast-mult a b) (fast-mult-iter a b 0)) (define (fast-mult-iter a b counter) (con...
  • 1 votes
     answers
     views

    在Scheme中传递 Value 混淆

    请考虑从SICP获取以下过程: (define (make-withdraw balance) (lambda (amount) (if (>= balance amount) (begin (set! balance (- balance amount)) balance) ...
  • 3 votes
     answers
     views

    错误:无法在null语法环境中绑定名称

    我目前正在阅读sicp书的练习1.3 . 这是问题的描述: 定义一个过程,该过程将三个数字作为参数,并返回两个较大数字的平方和 . 我尝试使用以下代码解决它 (define (square x) (* x x)) (define (sq2largest a b c) ((define large1 (if (> a b) a b)) (define ...
  • 3 votes
     answers
     views

    为什么我的立方根算法错了?在SICP练习1.8

    >已修复, 这不是一个庞大的数字,只是两个巨大数字的一小部分,所以我得到了一个误报 . 算法是正确的;现在修改最后一个输入参数,解释器将其检索为十进制逗号,并且看起来像它一直是的小数字 . 我正在从SICP做练习1.8,当我评估算法时,Scheme的解释器̵f̵̵r̵̵e̵̵e̵̵z̵̵e̵s̵会返回错误的答案 . 有人知道为什么吗? 牛顿立方根的方法基于如下事实:如果y是x的立方根的...
  • 0 votes
     answers
     views

    MIT Scheme Int VS Float

    我一直在使用mit-scheme来测试练习中的SICP . 对于练习1.8,您的任务是编写一个类似于给定平方根函数的立方根函数 . 我的解决方案如下:但是,我注意到在cube-root函数中,第一次调用cube-iter . 如果第一个参数是1,则函数返回一个非常大的整数,如果它是1.0,它将使用mit-scheme返回预期结果 . 使用scm解释器时,使用1和1.0时输出之间没有区别 . 我的印...

热门问题