首页 文章
  • 1 votes
     answers
     views

    尝试在x虚拟帧缓冲区上运行racket程序

    我试图在x虚拟帧缓冲区上运行一个球拍“宇宙”程序,我不断收到此错误: ffi-lib: couldn't open "libfontconfig.so.1" (libfontconfig.so.1: cannot open shared object file: No such file or directory) context...: /usr/share/rac...
  • 1 votes
     answers
     views

    在Racket中递归传递参数

    我在球拍中编写一个函数时遇到问题,该函数应该采用另一个函数作为第一个参数,列表作为第二个参数 . 在函数的初始调用中似乎都很顺利但是当我尝试以函数作为参数递归调用它时,它需要函数的参数 . 我希望此参数函数作为递归函数传递,但用于评估定义中的其他位置 . 任何帮助将不胜感激 . (define apply-to-pairs (lambda (arg1 arg2) (if (or (eq...
  • 2 votes
     answers
     views

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

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

    什么时候应该使用syntax / loc而不是#'(又名语法)?

    一个新的语法对象可以由syntax/loc和syntax(也写成 #' )构造 . 我什么时候应该使用 syntax/loc ?
  • 0 votes
     answers
     views

    执行多个Racket程序时减慢速度

    我有一个长期运行的球拍程序 . 执行相同程序的许多实例将有助于更快地找到答案 . (这取决于随机性 . )所以我在24核机器上从命令行执行同一程序的10个实例 . 执行一个实例(在一个核心上)时的平均吞吐量是500次迭代/秒 . 执行10个实例(在10个核心上)时的平均吞吐量降至每个核心100次迭代/秒 . 我希望每个核心看到类似的吞吐量,因为每个执行根本不与其他核心接口 . 有没有其他人遇到这...
  • -1 votes
     answers
     views

    球拍程序无法正常工作

    我做了一个函数,它采用列表和列表的两个元素 . 如果第二个参数出现在第三个参数之前的list参数中,它应返回#t: 如果任何假定的元素根本没有出现,该过程也应该返回#f . 这是我到目前为止所得到的: (define (before-in-list? lst a b ) (cond ((empty? lst ) #f) ((eq? (car lst ) a) ( map b (cdr ...
  • 0 votes
     answers
     views

    为什么这个函数在返回false时返回true?

    所以,我有这个辅助函数,它检查列表和对列表之间是否存在自反关系 . (define helper (lambda (L S) (cond ((if (equal? L '()) #f ;; here, when L equals empty list, it should return #f, but somehow it returns #t even if L is '...
  • 7 votes
     answers
     views

    什么时候应该在Racket中使用`protect-out`?

    Racket提供protect-out以防止模块导出与eval(或解构的语法对象)一起使用,除非模块具有足够的权限(也就是说,具有strong enough code inspector) . 文档也为它的作用提供了一个很好的例子: > (module nest racket (provide num-eggs (protect-out num-chicks)) (defin...
  • 1 votes
     answers
     views

    方案:附加到当地环境

    比如说,我想在Scheme中实现“声明式”对象系统,方法是定义对象符号,然后将方法和字段附加到该对象 . 在这样做的时候,我想利用这个对象的本地环境来正确绑定它们在方法中的字段(稍后会添加),例如(一个非常“混乱”的例子): (define myobj (begin (define x 5) ; some local field (hard-coded for example) ...
  • 105 votes
     answers
     views

    Clojure,Scheme / Racket和Common Lisp有什么区别?

    我知道他们是同一个语言家族的方言,称为lisp,但究竟是什么区别呢?如果可能,您是否可以概述语法,特征,功能和资源等主题 .
  • 1 votes
     answers
     views

    球拍数据记录 - 数据记录与否定?

    球拍的数据记录(https://docs.racket-lang.org/datalog)是否支持'datalog with negation'?
  • 1 votes
     answers
     views

    在Scheme中检查对象是否为“listdiff”

    listdiff是一对谁的车是L,其cdr是eq?到L,或到(cdr L),或到(cdr(cdr L)))等.listdiff的cdr不必是列表;它可能是任何物体 . listdiff D表示(cd D)之前的(车辆D)的前缀 . 例如,假设ils是不正确的列表(e i o u.y) . 然后(cons ils)返回一个空的listdiff,(cons ils(cdr(cdr ils)))返回...
  • 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 ,因为在替换参数之前评估操作数 ....
  • 2 votes
     answers
     views
  • 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 ...
  • 0 votes
     answers
     views

    使用Racket的语法参数在编译时注入语法?

    我正在尝试使用语法参数,以便在我需要注入的地方注入新语法 . 然后在其他语法中使用此结果 . 但是,它没有像我期望的那样工作 . 这是一个最小的工作示例: #lang racket (require (for-syntax racket/contract)) (require racket/stxparam) ;; A list for holding the instructions (d...
  • 1 votes
     answers
     views

    替换语法对象中的变量

    我想将 #'(or (and v1 v2) (and v1 v3)) 等语法对象中出现的所有 v1 替换为 v4 来获取 #'(or (and v4 v2) (and v4 v3)) . 在Racket中最简单的方法是什么?我应该将语法转换为list或要替换的字符串并将其转换回语法吗?
  • 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 为什么?
  • 1 votes
     answers
     views

    在Scheme或Racket何时使用函数以及何时使用宏

    有人可以给出一些关于何时使用Scheme或Racket宏以及何时使用函数的一般指导 . 如果你没有创建新的语法并且你没有在变量上创建副作用,那么你是否需要(或者更合适)使用宏而不是函数?
  • 1 votes
     answers
     views

    为什么在Racket语法中允许使用“点对”s表达式?

    在或多或少地理解了this question的答案之后,在我看来,在Racket / Scheme中,在读者级别,语法树中每对的第二个元素必须是一个列表 . 换句话说,只要形式为 (A . B) 的点状s表达式表示语法树的顶点, B 只能通过作为列表解析的s表达式,如 (C D E) . 例如: (A . (C D E)) . 这当然可以写成 (A C D E) ,因为它被解析相同 . (+ ...
  • 0 votes
     answers
     views

    使用语法分析的球拍无尽背景扩展

    所以我正在尝试编写一个宏来为类声明提供一些我更喜欢的语法 . (define-syntax (defclass stx) (syntax-parse stx #:literals ((*...* ...)) ;============================= [(defclass (name:id inits ... rest:id *...*) opts ...) ...
  • 9 votes
     answers
     views

    `eval`和`eval-syntax`之间的区别

    根据文档 eval 和 eval-syntax 的行为相同,除了 eval enriches the input syntax . 如果top-level-form是一个语法对象,其基准不是编译形式,那么它的词汇信息在发送到评估处理程序之前会被丰富: 与eval类似,除了stx必须是语法对象,并且它的词汇上下文在传递给求值处理程序之前不会被丰富 . 我很难理解这意味着什么 . 我得到的印...
  • 2 votes
     answers
     views

    使用语法列表作为函数的形式参数

    这是场景:给定 [sym ...] 形式的模式(例如 [a b] 和 [a b c d] )我想生成(使用宏)函数来连接模式中的符号,但也提供它们作为参数 . 例如, [a b] 转换为某种形式 (define (ab a b) body) 在this post,有人通过名为 signal-list 的语法类帮助我生成函数的名称 . 在下面的代码中,我可以将 signals 模式变量与 (...
  • 4 votes
     answers
     views

    如何编写新的#%基准函数来捕获所有字符串?

    我想写一种新的球拍语言,以某种特殊的方式捕捉和处理字符串 . 我编写了以下示例代码: #lang racket (provide #%top #%app #%top-interaction #%module-begin (rename-out [datum #%datum])) (define big-string "") (define (add-st...
  • 2 votes
     answers
     views

    如何使用语法宏

    我是Scheme的新人,在阅读SICP时,我发现: 我需要阅读“The Scheme programming language 4”, 我需要阅读r6rs, --->我读了“又一个方案教程”, --->我需要阅读“使用Syntax-Case在Scheme中编写卫生宏” . 在阅读最后一篇文章时,我尝试: (define-syntax with-syntax1 ;;;...

热门问题