问题标签 [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 回答
1758 浏览

scheme - Racket (Scheme) 错误:需要引号后的符号名称,但找到了一部分

我在 Dr. Racket Verion 5.3.6 中运行此代码(The Little Schemer):

它抛出错误:部分quote: expected the name of the symbol after the quote, but found a part(quote ()))我在这里做错了什么?

0 投票
0 回答
115 浏览

scheme - Little Schemer - IDE

我正在阅读“The Little Schemer”一书,并寻找一个允许我使用书中代码的 IDE。我看过 DrRacket 和 REPL,但不确定这些是否是实现此学习目标的最佳 IDE。另外 - 是否有任何来源/网站具有本书的代码已经即插即用/准备复制以节省我打字的时间?非常感谢提前,W

0 投票
2 回答
282 浏览

recursion - Little Schemer:编写只支持长度≤2的列表的函数

The little schemer一书中,我们发现这个函数只支持长度小于或等于1的列表:

我想逐步学习,并想编写仅支持长度小于或等于2的列表的类似函数。

请不要通过提供如下代码来回答这个问题:

因为这个函数支持任意长度。

而且我已经知道如何编写这样的函数:

实现我的目标。但是这段代码距离第一个代码片段不止一步。

也许,我不应该改变:

0 投票
1 回答
74 浏览

javascript - "Mapping" Little Schemer to coderbyte challenge: Capitalize

After studying most of The Little Schemer, I've been trying my hand at some recursive solutions to Coderbyte challenges.

After some fiddling I threw in cons and thought my upperConsIt would work to look through an array, find all of the instances of a particular letter and capitalize each. Ultimately, I'll have an array that I can convert into a string with that one letter now capitalized.

Thee ERROR pops up when I try to use shift() like cdr. Why is this? What would I have to do to work with JavaScript recursively in this case?

Here is the error output:

TypeError: undefined is not a constructor (evaluating 'array.shift()')

I just don't see how this is a type error. The array should be an array, right?

0 投票
2 回答
514 浏览

scheme - The Little Schemer:什么是函数或参数的结构?

The Little Schemer的第 3 章中,我们为什么不立即简化 rember 函数的问题的答案是“因为函数的结构与其参数的结构不一致”。我无法理解函数的结构是什么,参数的结构是什么,以及它们之间的区别是什么。

这是未简化的版本:

这是简化的:

据我所知,主要区别在于该功能已从两个 conds 各问一个问题变为一个 conds 问两个问题。

该函数的参数是原子“a”和列表“lat”。

这是第一次,除了密密麻麻的前言之外,本书引用了“结构”这个词。在我看来,到目前为止,“结构”一词的定义是可以解释的。

以前有人在这里问过这个确切的问题,但我无法回答这个问题。为什么两个条件结构与列表的结构一致或不一致?一份清单,在我看来,根本就没有任何条件!

条件不等于Scheme中的问题吗?也许我误解了条件是什么,这可能是我沮丧的合理根源。无论如何,对此的任何澄清将不胜感激!谢谢!

0 投票
3 回答
5428 浏览

recursion - “自然递归”的定义是什么?

小谋士第三条诫命说:

构建列表时,描述第一个典型元素,然后将其用于自然递归。

“自然递归”的确切定义是什么?我问的原因是因为我正在上丹尼尔弗里德曼的编程语言原则课程,并且以下代码不被认为是“自然递归的”:

但是,以下代码被认为是“自然递归的”:

我更喜欢“非自然递归”代码,因为它是尾递归的。然而,这样的代码被认为是诅咒。当我问为什么我们不应该以尾递归形式编写函数时,助理教练简单地回答说:“你不要弄乱自然递归。”

以“自然递归”形式编写函数有什么好处?

0 投票
1 回答
2345 浏览

scheme - 用一个函数确定Scheme中的数字是否为负

我一直在阅读 The Little Schemer,我开始对如何处理负数感到好奇。弄清楚如何构建一个函数来确定一个数字是负数还是正数,这似乎是一个很好的挑战。

到目前为止,我有这个解决方案:

这看起来工作得很好,但我的问题是是否可以在negative?没有辅助功能的情况下进行纠正?

0 投票
2 回答
2270 浏览

scheme - 是纬度吗?Scheme中的原始函数?

假设 l 定义如下:

l 现在绑定到一个原子列表。

Little Schemer 介绍了一个简单的函数,叫做 lat? 根据参数作为原子列表的分类,其计算结果为 #t 或 #f。例如,

应该评估为#t,因为 l 是三个原子的列表。

但是,当被要求调用 lat? 时,我的方案解释器 ( repl.it ) 会引发错误。

我假设纬度错了吗?对Scheme来说是原始的吗?

另外,如果是这种情况,请原谅转发。

0 投票
1 回答
133 浏览

lambda - 在“小计划者”一书中,lambda 是一个原子吗?

我正在阅读“The little schemer - 4th edition”一书的第 10 章,它实现了一个简单的 schemer 解释器。:atom?除了第188页中的功能外,所有其他内容对我来说都很好:

我不清楚这一行:

在本书的前面,non-primitive对应于一个 lambda 定义。

具有(通过环境table)的值:

这是否意味着 lambda 定义是atom书中的 , ?

我想这是但不太确定,因为我在书中找不到他们的关系。

0 投票
2 回答
1025 浏览

scheme - 收集器函数在 Scheme 中是如何工作的?

我无法理解 Scheme 中收集器函数的使用。我正在使用“The Little Schemer”一书(Daniel P. Friedman 和 Matthias Felleisen 着)。一个带有一些解释的综合示例将对我有很大帮助。使用收集器函数的函数示例如下:

...以示例调用 being(identity '(a b c) self)和 the self-functionBeing (define self (lambda (x) x))。该identity函数返回给定的列表l,因此给定调用的输出将是(a b c)。使用的确切语言是 R5RS Legacy 语言。