问题标签 [racket-student-languages]

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 回答
193 浏览

recursion - 用球拍初学者语言编写递归函数时卡住了?

所以最近我学习了递归函数,我正在尝试一些练习然后我就卡住了。

问题是 list-nth-item,它使用一个列表 (lst) 和一个自然数 (n),如果存在,则生成 lst 中的第 n 个元素,否则该函数生成 false。请注意,第一项在索引 0 中。例如:(list-nth-item (list 1 2 3) 0)产生1

这是我的代码

我知道因此不是正确的递归,当 n = 0 时它应该在列表示例中产生第一个数字(list-nth-item (list 1 2 3)0)应该给出1. 我对此并不陌生,只是不知道如何形成递归。

0 投票
2 回答
2212 浏览

algorithm - Return smallest element in a list of numbers in Racket ISL?

I have to write a function in Racket ISL that takes a list of numbers and returns the smallest number in the list. Both min and max are not allowed. I think I have a start here; obviously recursion is needed.

Eventually I'll use this function to create an abstract one.

0 投票
1 回答
612 浏览

racket - gcd: 这个名字是以前定义的,不能重新定义

我必须使用 DrRacket 来解决这个问题,但每次运行代码时,我都会收到此错误消息“gcd:此名称是以前定义的,无法重新定义”。(我也在 DrRacket 中选择了 Advanced student [custom] 的语言。下面是我的代码,它是一个递归函数来找到最大公约数:

0 投票
1 回答
384 浏览

racket - 基本球拍:最终价值

我正在上一门编程入门课。我们在 DrRacket 中使用学生语言。

问题:我想在大爆炸游戏结束时返回某个值(需要 2htdp/universe)`。

当前输出:当游戏结束时,DrRacket 返回我当前的世界状态,这是我在游戏中使用的结构列表。

解决方案的进展:似乎stop-with可以帮助我,但我不确定如何使用它。

TL;DR:
问题:游戏结束-->返回世界状态(结构列表)
想要:游戏结束-->返回其他值(数字)

让我知道我是否可以以任何方式澄清!谢谢!

编辑:我想我找到了解决方案。我使用我通常要求的表达方式来结束我的生活?函数并将其作为我的 on-tick 函数中的 cond 分支。当在我的 on-tick 函数中调用该函数时,它会将世界状态更改为我想要输出的任何内容。那么,到底我呢?函数,我只是检查一下世界状态是否与通常不同。

谢谢您的帮助!

解决方案:

0 投票
2 回答
105 浏览

scheme - 计划如何返回表单符号 + *

我如何在方案语言上定义这个返回if x>0 + else * 的函数:

我试试这个,它在球拍上不起作用:

我收到了这个错误

0 投票
2 回答
1126 浏览

racket - DrRacket:将两个物体放入大爆炸

如何放置两个具有自己坐标的对象

进入 bin-bang 函数

我可以使用桨列表吗

0 投票
2 回答
644 浏览

racket - 如何在 REPL 中将语言设置为 htdp/bsl

我将以下htdp/bsl程序另存为example.rkt

使用 运行上述内容时racket example.rkt,输出与预期一致(即2)。

但是,当我尝试使用htdp/bsl语言 ( racket -I htdp/bsl) 启动 REPL 时,会出现以下错误:

This error does not appear when the language selected is typed/racket, for example.

为什么会发生错误htdp/bsl,以及如何正确启动 REPLhtdp/bsl作为语言?

0 投票
2 回答
72 浏览

racket - 我可以在 BSL 中将列表分成多个部分吗?

我有值列表,并想从中获取第一个 x 值并创建 (list (listof first x values) (listof next x values) 等等,直到这个列表变空...)。

例如,给定这个列表:(list "a" "b" "c" "d" "e" "f" "g" "h" "t") 返回这个:(list (list a" "b" "c") (list "d" "e" "f") (list "g" "h" "t"))

提前致谢 :)

0 投票
1 回答
201 浏览

list - 如何更新球拍(宇宙)中另一个结构内的结构列表

这是一个家庭作业,所以我不要求代码只是指导。我是 Racket 语言的新手,并且在没有 lambda 的情况下使用 ISL。我不能使用 lambda 或任何其他库。

我正在使用大爆炸。我有一个名为 struct-abc 的结构。在 struct-abc 中,我有一个名为 list-abc 的列表。在 list-abc 里面,我有一个 struct-xyz 的集合。我需要在每个刻度上更新 struct-abc 内的 list-abc 内的所有 struct-xyz 。

这是我到目前为止所拥有的:

使用上面的代码片段,我可以在鼠标事件或键事件上将 struct-xyz 的新实例添加到 list-abc。现在如何在每个滴答时自动更新 list-abc 中的所有 struct-xyz ?

这是我的 bigbang 函数(不包括所有参数):

这是我的 world-after-tick 函数,我将参数 world 和 list-abc 传递给辅助函数:

现在,在这个辅助函数中,我想将第一个 struct-xyz 从 list-abc 传递给另一个辅助函数,该函数更新值并递归地从 list-abc 传递每个结构。如何调用递归函数以及更新值的函数?我无法弄清楚这部分:

0 投票
2 回答
553 浏览

racket - 从 Racket 中的结构创建列表

我有以下代码:

现在我想要一个看起来像这样的列表:(list 22 25 23)(list 'a 'b 'c)

我知道当我调用它时(p-x (s-p (first my-List)))我会得到 22 但我怎样才能为 中的整数或符号做到这一点my-List?我认为它可以在递归过程中完成。

注意:我需要使用带有列表缩写的初学者级别

谢谢您的帮助!