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

collatz - Racket 博士:保存中间结果 - Collat​​z 猜想

我是编码新手,对 Racket 博士很感兴趣,现在我面临第一个问题。我创建了这段代码:

是否可以将所有中间结果存储在列表或其他内容中,然后打印出来。我的意思是中间结果 n/2 或 3n+1 直到我们得到 1。

例如 n=100 (100, 50, 25, 76, 38, 19, 58, 29, 88, 44, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1)

有人可以给我一个线索或告诉我如何实现这样的事情吗?

0 投票
1 回答
423 浏览

scheme - 球拍函数传递空列表而不是实际列表

我对球拍很陌生,我正在尝试为一个项目制作一个有限状态机。这是我到目前为止所拥有的。

然后我输入

由于我无法弄清楚的原因,我 在下一个函数中收到此错误。它的作用就好像规则是一个空列表,我很确定它不是。无论如何,如果有人能告诉我它为什么这样做,那真的会有所帮助。

谢谢!

编辑1

非常感谢你们的帮助。这真的很有帮助。该代码一直工作到最后,但现在如果我使用 testmany 测试多个列表,它会在我的代码末尾抛出一个错误。

代码似乎不知道何时停止 testmany 函数的递归。当列表为空时,它会打印完成,然后继续下一部分,就好像列表仍然有元素一样,抛出此错误。 如果有人知道为什么会引发此错误,请告诉我。谢谢!

0 投票
1 回答
602 浏览

scheme - 如何使用 DrRacket 遵循简单方案书

我希望能够操纵句子,以便我可以将它们作为输入并根据单个字母等内容返回输出。例如,ends-e 命令将返回所有以“e”结尾的单词:

不幸的是,“e”是一个字符串,而 '(只有好人英年早逝)是一个句子。Scheme 很难将句子理解为一种数据类型(因为它不是一种数据类型)。如何将用户输入的带有引号和括号的句子转换为我可以操作并以相同句子格式返回的内容?

这本书:https ://people.eecs.berkeley.edu/~bh/ssch8/higher.html#ft1概述了一些可以操作句子和单词的函数,但在底部贴了一个脚注,上面写着“就像这里的所有程序一样处理单词和句子的书……[the] 本章中的程序是我们对 Scheme 的扩展的一部分。”

我如何获得这些扩展?我查看了后面的章节,但我对语言的理解太初级,无法理解如何自己创建这些程序。

这些是我尝试将 '(h) 转换为可以理解的数据类型方案时收到的错误消息。

这意味着我不能询问方案 '(h) 是否等于“h”。我什至不能问它是否'(h)等于'(h)!

0 投票
1 回答
76 浏览

scheme - 句子输出是垂直的,每个单词之间有换行符

如果一个单词的句子太长,解释器将垂直打印句子,在每个单词之间使用换行符,而不是在句子到达缓冲区边缘时仅使用一个换行符。

我如何得到一条只有一两个中断的行?像这样:

或类似的?

我正在与#lang simply-schemeDrRacket 一起写作。

0 投票
1 回答
3601 浏览

racket - 球拍错误:需要一个可应用于参数的过程

抱歉,我刚开始使用球拍。我对此很陌生。我写了这段代码:

当然,当我运行它时,我得到了这个错误:

(join_sheet (list-ref lst num))应该返回错误显示的图像,但my_save_image应该接受它吗?它的参数是图像和一个数字。谢谢!

0 投票
2 回答
746 浏览

scheme - 计算球拍 BSL 中给定数字的适当除数之和

设计一个名为 Racket 的函数findProperDivisor,它接受一个自然数并计算其所有适当除数的总和。自然数的适当除数是严格小于该数的除数。

例子:

输入:20

输出:22

//适当的除数:1 + 2 + 4 + 5 + 10 = 22

我在此页面上找到了此代码,但它给了我1+2+4+5+10+20=42我需要的代码22

我想通过使用递归和一个参数来编写这段代码cond。我正在使用初级学生语言 (BSL),它没有let定义之类的东西。

0 投票
1 回答
59 浏览

racket - Dr. Racket 代数步进器的输出到文件

在调试过程中,步进器在遇到错误后会发生故障。并且每次向 bug 迈进至少需要点击一百次。所以每次都这样做似乎毫无意义。有没有办法将您在步进器中看到的所有评估步骤保存到文件中?

0 投票
1 回答
113 浏览

set - 什么是 setf,它是 Dr.Racket 中的有效函数吗?

我有一个任务,我必须为表达式定义一个别名,在其中一个指南中,我们被告知使用 setf 或列表列表来定义它们。更具体地说,我们需要将它们的 lambda 演算值分配给别名 ADD/SUCC/PRED/etc,例如 ---> (ADD := (λ mnf x.nf (mfx))) <----。

这样,在任何给定操作中用别名替换它们之后,我们就可以操作它们。由于我没有找到任何明确的解释,而且我不知道如何继续使用 setf,所以如果你们中的任何人能给我一个小费,我会发现它真的很有帮助。

到目前为止,要更改我使用的条件值,如果任何符号等于我需要替换的单词,它就会这样做,但我似乎效率不高。

0 投票
1 回答
205 浏览

racket - Racket 博士不会保存我的任何文件。以前有没有人遇到过这个错误或有任何想法?

我已经重新安装了 Dr Racket,包括旧版本。无论何时保存,我都会收到此错误:保存时出错

字节->字符串/语言环境:字符串不是格式良好的 UTF-8 编码字符串:#"pl\373"

0 投票
1 回答
105 浏览

scheme - 试图编写一个返回另一个函数的函数,但 Racket 说我的 lambda 不是函数定义?

在球拍中编程,我正在尝试编写一个接受单个整数的函数,并返回一个将该整数增加另一个整数的函数。例如:

不幸的是,我似乎仍然不了解 lambda 函数,因为我的代码一直说我的 lambda 不是函数定义。这是我写的。