问题标签 [the-little-schemer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
11 回答
8380 浏览

ide - 将哪个环境、IDE 或解释器付诸实践方案?

我一直在通过The Little Schemer,我想知道最好使用哪种环境、IDE 或解释器来测试我为自己记下的任何 Scheme 代码。

0 投票
7 回答
31852 浏览

scheme - Lisp / Scheme中的'(撇号)是什么?

我在自学计划的第 1 天第 1 小时。不用说,我什么都不懂。所以我正在阅读The Little Schemer并使用这个东西:

http://sisc-scheme.org/sisc-online.php

作为翻译。

'例如,我需要使用

以避免“未定义的变量”错误。根据'这本书, 是 Common Lisp 的东西。

我有两个问题:

  1. 我上面提到的口译员是好口译员吗?你能推荐另一个吗?我需要一个与The Little Schemer搭配得很好的。

  2. 是什么'

0 投票
1 回答
428 浏览

scheme - 将 The Little Schemer 中的 Q 和 P 函数翻译成 Common Lisp?

在 Little Schemer 的第 9 章中,作者介绍了以下两个函数

并建议通过以下执行对它们进行评估:

你会如何在 Common Lisp 中编写 P 和 Q 函数?

(我自己翻译了 Y-Combinator - 但我发现这个很有挑战性)

--辅助功能--

(免责声明 - 这不是家庭作业问题 - 这是为了我的理解和学习)

0 投票
2 回答
488 浏览

lisp - 从“The Little Schemer”中的例子到真正的 Scheme 的语法变化

我最近开始关注The Little Schemer中的示例,在尝试DrScheme中的示例时,我意识到从书中的示例到我可以在 DrScheme 中编写的内容之间存在一些细微的语法变化。

首先,作为 DrScheme 中的一门语言,我选择了Pretty Big(Legacy Languages 之一)。
这是尝试书中示例的正确选择吗?


至于语法变化,我注意到,例如,我需要在标识符前面加上 a'才能使它们工作。

例如:

在尝试“The Little Schemer”书中的示例时,是否还有其他需要注意的变化(语法或非语法)?

0 投票
2 回答
287 浏览

scheme - 方案:为什么需要在这里使用条件?

我试图编写一个(简单,即没有eqan?one?函数,如下所示:

但是上面的方法不起作用,因为当我这样称呼它时:

我收到了这个错误:


写它的正确方法(来自The Little Schemer)是:

为什么需要使用condwithelse子句,而不仅仅是返回(= 1 n)

0 投票
2 回答
3241 浏览

scheme - 帮助理解 Scheme 中的 Continuations

我一直在与The Little Schemer一起学习 Scheme 并在我的环境中使用 PLT-Scheme。

Little Schemer在递归方面为我提供了极大的帮助(现在对我来说很简单),但我被困在书中介绍“收集器”并将函数作为一个整体称为延续的部分。

这是他们使用的示例代码。我理解递归元素,但我被困住了,特别是在 lambda 函数上——我的头脑无法遵循路径以及该 lambda 函数的参数是如何设置的(因为它们唯一的调用是在递归中再次调用它们,所以有在函数体内没有具体使用)。

如果有人可以通过将函数递归到 lambda 收集器中或多或少地给我分解计算路径,那可能会对我有所帮助。

先感谢您!!

0 投票
4 回答
895 浏览

scheme - 方案实施 - 这是什么意思?

我是 CS 的初学者,我的课程主要是 Java。我目前正在通过“Little Schemer”作为自学,并且在寻找如何做到这一点的过程中,我发现了许多对 Scheme 的“实现”的引用。我的问题是,什么是实现?

它们是 Scheme 的子方言,还是其他的东西(DrScheme 似乎允许该语言的不同“风味”)?它只是给包含 IDE、解释器、交互式工具等的任何给定生态系统的名称吗?

所有其他语言(例如Java)是否也有各种“实现”,或者它是为“开放”语言保留的?

谢谢,

乔斯·德拉格

0 投票
2 回答
580 浏览

scheme - 小计划者均衡器?功能 - 替代版本?

我正在阅读“Little Schemer”一书,并执行各种功能。一般来说,我最终会得到与书籍相同的版本,但不是 eqlist?,这是一个测试两个列表是否相等的函数。

我试过测试我的版本,它通过了我扔给它的任何东西。然而,它与“Little Schemer”版本略有不同,我希望有人对我是否遗漏一些东西发表意见——我怀疑是这样。

我的版本:

书的版本:

在这两种情况下,eqan 的定义是:

谢谢!

乔斯·德拉格

0 投票
1 回答
986 浏览

recursion - 为什么这在 DrRacket 中有效,但在控制台中的 Racket 中无效

DrRacket 中的语言设置为高级学生。在定义sub1.

错误信息是:

替代文字 替代文字

0 投票
2 回答
592 浏览

clojure - mini-kanren cond-a cond-u 和 cond-e 有什么区别?

我曾尝试在 clojure 中使用 mini-kanren 的实现。但是一直在努力理解 cond-a cond-u 和 cond-e 之间的区别。我似乎对 cond-e 很清楚,但对 cond-a 和 cond-u 的理解却很糟糕。

cond-e 采用一组目标,然后尝试每个目标......即尝试所有成功的分支。

相反, cond-a 和 cond-u 提交到第一个谓词成功的分支,然后 cond-a 返回所有可能的成功统一。而 cond-u 只返回第一个成功的统一......但是当我使用它时,这种理解似乎是不正确的。有人可以帮助我澄清这种理解。