使用“do”在方案中
代码片段 1 和代码片段 2 有什么区别? CODE SNIPPET 1 (define i 0) (do () ((= i 5)) Two sets of parentheses (display i) (set! i (+ i 1))) COD…
方案:列表的 CAR 和 CDR
我对 car 和 cdr 如何在列表上工作感到困惑。这是我尝试过的示例: (define sample (read)) (display sample) (display (car sample)) (display (cdr …
在Scheme中的List中添加一个元素
下面是我的代码,它采用列表(carVal) 的 car 元素和列表(初始化为空)作为参数。我想将元素追加到列表中,但同样不起作用。 (define populateValues …
Python中SymbolType有什么用?
这是 SymbolType 包,它将符号添加到 Python 中。那些对 Lisp/Scheme 做过任何有用的事情的人可以告诉我如何在 Python 中利用这种类型吗? 它可以用来…
使用accumulate 计算总和
程序accumulate的定义如下: (define (accumulate combiner null-value term a next b) (if (> a b) null-value (combiner (term a) (accumulate co…
Scheme中函数的机制
这是Scheme中的一个奇怪的函数: (define f (致电/抄送 (lambda (x) x) ) ) (((f 'f) f) 1 ) 当在命令行中调用 f 时,显示的结果是 f 。 这个机制的…
DrRacket、R5RS和错误程序
我喜欢 DrRacket IDE,但目前我正在构建一个我希望独立于它的宠物项目,这意味着我致力于仅使用 R5RS 标准程序。 问题是,在 DrRacket 中有一个名为“…
宏(用户定义的代码转换)的想法是什么时候出现的?
我读过 McCarthy 1960 年关于 LISP 的论文,没有发现任何与用户定义宏或正常顺序求值类似的内容。我想知道宏何时首次出现在编程语言历史中(以及 Lisp…
Scheme 可以与 Microsoft COM 一起使用吗?
我是计划的新手,我非常喜欢它的一流/高阶函数。但是,我的数据来自具有面向对象 API 的 COM 源。 我知道Scheme和COM属于不同的编程范例,但我想知道S…
为什么使用 cons 创建一对两个列表会生成一个列表和两个元素?
我开始学习Scheme,主要是为了好玩,而且因为我以前从未使用过函数式语言。我选择Scheme是因为我想长期阅读SICP。 不管怎样,我目前正在学习列表,在…
查找Scheme中从根到叶子的所有路径
给定一棵树,我想找到从根到每片叶子的路径。 因此,对于这棵树: D / B / \ A E \ C-F-G 从根(A)到叶子(D,E,G)有以下路径: (A B D), (A B E),…