问题标签 [racket]

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 投票
3 回答
2142 浏览

scheme - Scheme中检查列表长度是否为偶数的函数

嗨,我已经编辑了用于检查列表长度是否均匀的方案中的函数代码。

正确吗?

0 投票
5 回答
407 浏览

lisp - 将表达式的结果分配给变量

使用 DrScheme(语言——相当大)。试图将表达式的结果传递给稍后可以在另一个表达式中使用的变量。这是问题的简化版本:

定义窗口:

解释器窗口

我想要的结果当然是 19。让 DrScheme 一次完成所有代数很容易,但我需要让它求解第一个表达式,然后根据第一个表达式的结果求解第二个表达式。

0 投票
1 回答
4153 浏览

scheme - Scheme中的一个函数,用于用另一个元素替换列表中所有出现的元素

我可以从列表中删除元素,但我不知道如何在 Scheme 中编写一个函数来用另一个元素替换列表中所有出现的元素。任何帮助将不胜感激。

0 投票
2 回答
3241 浏览

scheme - 帮助理解 Scheme 中的 Continuations

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

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

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

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

先感谢您!!

0 投票
1 回答
3648 浏览

recursion - 子列表上的最大方案

我编写了一个函数来从嵌套列表的列表中获取最大值,我在右边有函数的一般形式;它适用于平面列表和嵌套列表,但当有兄弟嵌套列表时似乎失败。

这是我的代码:

这是一个失败的测试列表:(multi-max '(1 9 83 9 (332 (334) (2 3 4224))))

我不确定我哪里出错了,从逻辑上讲,一些帮助会很好!

0 投票
1 回答
168 浏览

scheme - PLT 方案:转换“在 LISP 中铸造 SPEL”中的宏之一

这就是来自http://www.lisperati.com/actions.html的“宏定义宏”的代码。我似乎无法将其适当地转换为方案。有人可以向我解释在 Scheme 中创建同样类型的东西的过程吗?

0 投票
1 回答
217 浏览

macros - 如何将“rest”变量绑定到Scheme中宏中的值列表

我想制作一个帮助宏来编写匹配扩展。我有这样的事情:

所以我想要一个宏来做这个让绑定。我从这样的事情开始:

但未match-let在转换时间中定义。

第一个问题是有没有其他方法可以做到这一点(我的意思是制作这个扩展器)?也许 plt-scheme 中已经有类似的东西我不知道,或者我在某种程度上做错了。

不管第一个问题的答案如何,如果我想将变量列表绑定到宏内的值列表,我应该怎么做?

编辑:结合 Eli 的答案宏现在看起来像这样:

0 投票
3 回答
7593 浏览

functional-programming - letrec有什么好处?

在阅读“经验丰富的计划者”时,我开始了解letrec. 我理解它的作用(可以用 Y-Combinator 复制),但本书使用它来代替在已经defined 函数上重复运行,该函数对保持静态的参数进行操作。

一个使用defined 函数的旧函数的例子(没有什么特别的):

现在举一个相同功能的例子,但使用letrec

除了略长且更难阅读之外,我不知道他们为什么要重写书中的函数以使用 letrec。以这种方式重复静态变量时是否会提高速度,因为您不会一直传递它?

对于具有保持静态但减少了一个参数(例如递归列表的元素)的函数,这是标准做法吗?

来自更有经验的计划者/LISPers 的一些输入会有所帮助!

0 投票
3 回答
193 浏览

racket - PLT 方案记忆

所以我需要一些帮助来实现使用 Scheme 的 Make-memory 程序。我需要两条消息“写”和“读”。所以它会像 (mymem 'write 34 -116) 和 (mymem 'read 99) 对吗?和 (define mymem (make-memory 100)) .....我将如何在方案中实现它?使用 Alist???我需要一些帮助来编码它。我有这段代码,它使 make-memory 成为一个过程,当你运行 mymem 时,你会得到((99.0)),我需要做的是重复这个,所以我得到一个带有点对的 alist 到((0.0))。那么关于如何编码的任何建议?有没有人知道我可以做些什么来重复和使消息写入和阅读?

是的,这是一个作业,但我写了这段代码。我只是需要一些帮助或指导。是的,我确实知道可变长度参数列表。

0 投票
1 回答
216 浏览

scheme - 方案 - 记忆系统

我正在尝试制作一个内存系统,您可以在其中输入一些内容到内存槽中。所以我正在做的是制作一个 Alist,而这对汽车是内存位置,而 cdr 是 val。我需要程序来理解两条消息,读取和写入。只读显示选定的内存位置以及分配给该位置的 val 和 write 更改位置或地址的 val。如何使我的代码读取您想要的位置并写入您想要的位置?随意自己测试一下。任何帮助将非常感激。这就是我所拥有的: