尝试在 MacOSX Snow Leopard 上安装 MIT-Scheme 时遇到问题
我正在尝试安装 MIT-Scheme,以便我可以在终端上使用它,而不是使用 IDE,但是,我很难找到实际上最新且有效的教程。…
RacketScheme的“合同设计”是如何实现的?与埃菲尔铁塔有何不同?
我知道Eiffel(其鼻祖)和Racket都实现了“Design by Contract”的功能。可悲的是,我不确定其中一个与另一个有何不同。 Eiffel 的 DBC 依赖于 OOP 范…
运行时间是多少?是 O(n) 吗?
我认为这个解决方案的运行时间是O(n)。但是,我不确定。谁能帮我弄清楚吗? (define (poly x coeff) (polyaux x (reverse coeff) 0)) the aux functi…
这个Scheme列表迭代器如何使用call-with-current-continuation?
我正在尝试阅读此代码: (define list-iter (lambda (a-list) (define iter (lambda () (call-with-current-continuation control-state))) (define c…
Racket中的一些宏术语
我很长一段时间都对这些术语感到困惑,认为最好问问它们到底是什么意思: A.语法。 B. 语法值。 C. 语法对象。 Ds-表达式 E.datum(语法->datum) s…
方案,SICP,R5RS,为什么延迟不是特殊形式?
这是关于 SICP 的第 3.5 章,其中正在讨论流。这个想法是: (cons-stream 1 (display 'hey)) 不应该评估 cons-stream 的第二部分,因此它不应该打印“…
为什么这个宏不能执行?
我有以下愚蠢的测试: (define-syntax a (lambda (stx) (syntax-case stx () [(k e s) #'(let ((show display)) (e s))]))) (a show "something") 为…
计划中的关闭如何运作?
我在 Racket/DrScheme 中测试了以下代码: (define (makem) (define x 34) (list (lambda () (set! x (+ x 1)) x) (lambda () (set! x (+ x 1)) x)) )…
Racket 中的 gensym
我知道 gensym 可以生成符号,但似乎有一个带有基数的全局计数器,它可以非常大,例如, (define s (gensym 's)) s 可以结束与s12345一起。 我想知道…
嵌套let和lambda在Scheme中的排序
Scheme 中的两个函数之间有什么区别,一个是这样定义的, (define doSomething (lambda (x) (let (f (100)) (f x)))) 另一个是这样定义的? (define d…
(方案)递归函数来计算某些列表的所有可能组合?
计算所有可能的列表组合的递归函数的示例是什么?例如,(combine (list 1 2 3) (list 1 2)) 应返回 '((1 1) (1 2) (2 1) (2 2) (3 1 )(3 2))。…