问题标签 [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 投票
1 回答
107 浏览

ruby - Ruby 中的小 Schemer Curry 示例

我正在尝试按照eq?下面给出的 Little Schemer 示例来实现柯里化。eq( test, testFor)接受一个测试条件和一个原子,并根据传递的函数返回一个函数,该函数test接受一个参数来返回一个布尔值。

这是我的代码:

if 条件不执行。有人能告诉我为什么吗?

0 投票
1 回答
905 浏览

scheme - 方案 if 语句

我目前正在和The Little Schemer一起学习 Scheme,遇到了一个奇怪的麻烦。这是我的代码:

我在教科书中使用了“if”而不是“cond”。从尾递归返回时,它显示此错误:

我猜这是因为它将 if 语句中的 '() 视为一个函数,并将尾递归的返回值视为其参数。但是由于这本书没有给我太多关于语言的细节,你能帮我解释一下吗?(例如,这实际上是某种语言特性吗?有什么方法可以让我在这段代码中坚持使用“if”吗?什么时候可以安全地使用“if”?)

谢谢。

0 投票
2 回答
781 浏览

recursion - Scheme中匿名函数调用自身的机制?

我正在阅读The Little Schemer并对以下代码感到困惑:

代码是判断空列表,否则永远不会停止。

为什么“ len”不是递归?

0 投票
1 回答
490 浏览

scheme - Little Schemer:length0 和 mk-length

小计划者在第 165 页上给出了以下内容,仍然是函数长度0。但这是如何工作的?看起来长度 lambda被传递给mk-length lambda ,它使用长度 lambda本身作为参数传递来评估长度 lambda 。那么,当在底部被评估时只是长度 lambda本身。但是长度 lambda需要两个参数 curried:和. 那么怎么可能有意义呢?(length (cdr l))lengthlengthl(length (cdr l))

0 投票
2 回答
271 浏览

scheme - 在方案中返回函数

我一直在玩The Little Schemer,并在我工作的过程中尝试想法(并非所有想法都在工作)。刚才,我在第 6 章(他们在其中介绍了辅助函数),我觉得这一步触手可及——我只是不知道如何迈出这一步。

书中的代码如下:

定义了以下助手:

并进行了这种简化:

我认为我可以看到的简化是,当我们假设所有内容nexp都是有效的时,我们不需要重复((eq? (operator-i nexp) ...样板文件。

像下面这样的东西应该可以工作:

...除了它没有。Exception: attempt to apply non-procedure ...它与(+、x 和 ^ 之一)出错。

我可以看到问题在于它无法识别我正在尝试使用(operator-i nexp).

我如何向解释器表明我希望应用我返回的函数(operator-i nexp)

也欢迎任何其他提示(我使用的是 petite chez 方案)。

0 投票
4 回答
858 浏览

lambda - Scheme中使用lambda表达式定义函数的原因是什么?

我正在阅读 Daniel Friedman 的The Little Schemer书。我不明白为什么书中的每个函数都是用 lambda 表达式编写的。

这两个函数做同样的事情,但第二个更整洁。我很好奇到处使用 lambda 的原因。

在这种情况下,我使用了 DrRacket。

0 投票
1 回答
663 浏览

emacs - Emacs 和 The Little Schemer 的最佳方案实现?

我已经尝试过 Geiser,但我不断收到此错误消息:

顺便说一句,我在 Windows 7 上。此外,这是我的 .emacs 中的 Geiser 路径:

我不确定如何解决这个问题,因为 Google 没有返回任何有用的东西,而且我对 Emacs 或 Geiser 并不太熟悉。我真的很感谢对此或更好/更简单的方案实施的一些帮助,以便我最终可以启动 TLS。

0 投票
2 回答
216 浏览

scheme - 小计划者 - 语义

我刚刚开始阅读小阴谋家。我在理解某些单词时遇到了一些问题。

在第 27 页它说,

情商法则?

原始情商?有两个参数。每个必须是非数字原子。"

一个脚注说:在实践中,一些数字可能是 eq?

我使用球拍最小作为我的方案解释器。它评估(eq? 10 10)#t

玩具章节中有许多类似的问题。


作者所说的必须(标记为粗体)和脚注是什么意思?

0 投票
2 回答
6927 浏览

ide - 如何清除 Dr. Racket IDE 中的解释器屏幕?

刚开始进入 The Little Schemer,并有一个非常基本的 Dr. Racket IDE 问题:

  1. 如何清除解释器屏幕?

  2. 如何设置向上箭头以显示以前键入的项目(如在 Bash 中)而不是当前向上滚动屏幕的行为?

我的搜索出现空白,可能是因为我不知道这些操作的技术术语。

0 投票
2 回答
360 浏览

syntax - Little Schemer “S 表达式”谓词

小计划者问道。但如何测试?


从语法上讲,我知道如何测试其他语句,例如

不完全确定如何测试这个......

因为它刚刚返回......

但无论如何,知道如何测试 S 表达式让我很困惑

所以,像往常一样,任何照明都非常感谢