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

racket - 是否可以在 Racket 的学生语言中使用“提供”?

2.rkt有以下定义:

并且1.rkt有:

两者都处于“初级学生语言”级别(因此不需要#lang行)并且位于同一目录中。

这导致提供:此函数未定义错误2.rkt

添加修复此问题(require racket/base)2.rkt但随后我可以执行(cons 1 2)BSL 中不允许执行的操作。

如何在 BSL中使用plusin ?1.rkt

0 投票
1 回答
546 浏览

scheme - 球拍博士定义了学生语言中的错误。定义:函数体只需要一个表达式,但发现了 3 个额外的部分

当我在 Dr Racket 中编写代码时,我收到了错误消息

unsaved-editor:8:2: 定义:函数体只需要一个表达式,但在:(定义(改进猜测 x)(平均猜测(/ x 猜测)))中发现了 3 个额外部分

但是这段代码可以在Racketrepl.it中运行。

我想知道为什么 Dr Racket 会发生错误,我的代码真的错了吗?

我的代码是这样的:

0 投票
1 回答
111 浏览

racket - Racket BSL:如何在具有一个共同属性的列表中组合结构的两个实例?

我有一个名为“联系人”的结构的实例列表,它基本上是一个电话号码以及与他们通话的持续时间。

我现在想将同一电话号码的所有条目与所有通话的总持续时间加在一起。

例如:我想转:

进入:

我使用带有列表缩写的 Racket BSL

0 投票
2 回答
161 浏览

recursion - 如何优化递归球拍函数的运行时间以确定列表中元素的最大值?

这是我的精彩且有效的 LISP 球拍“中间与 lambda”样式递归函数,用于确定列表中符号值最高的符号。

如何检查和优化运行时?

运行时的递归与迭代有什么不同吗?

谢谢您的回答!

亲切的问候,

0 投票
1 回答
48 浏览

racket - 是什么让我的图像看起来只有预期宽度的一半?

我正在尝试使用初级学生语言中的放置图像将垂直定位的矩形和另一个对象放置在空白场景中。但是,当我运行该函数时,当矩形的宽度设置为等于场景的宽度时,该矩形仅在水平方向占据一半的场景。

我使用 Stepper 检查了我的代码发生了什么,发现图像宽度减半的位置,但我不知道为什么。可能与我不太熟悉的缺点有关。 在这两个步骤之间,宽度减半

这是完整的代码:

我已经尽可能地简化了这段代码,因此是 1×1 矩形。我也对实现这一点的优雅替代方案感兴趣,但最感兴趣的是找出为什么会发生这种情况。

0 投票
1 回答
117 浏览

racket - 球拍/初学者学生语言代码错误

我正在尝试使用 Racket 上的初学者学生语言逐个字母地为单词制作动画。但是,这段代码给了我一个错误“函数调用:在左括号后期望一个函数,但找到了一个部分”。我加粗了给我带来问题的部分。有什么建议么?

(定义单词“blahlahblahblahblahbla”)

(定义(letterByLetter a)

(overlay ( (substring theWord 0 a) 50 "red") (empty-scene 500 500)))

(逐字母动画)

0 投票
1 回答
106 浏览

racket - 为什么我的函数返回的列表结果看起来很有趣?

我正在使用此代码,但它不会按照我想要的方式创建列表。(evenList (list 1 2 3 4))在 REPL 中计算为(cons 2 (cons 4 '())),但我希望它像(list 2 4).

0 投票
1 回答
86 浏览

racket - 将 char 列表转换为单个字符串

如果我有一个类似的字符列表 (cons #\C (cons #\O (cons #\M (cons #\P (cons #\U (cons #\T (cons #\E empty)))))) ),如何将其转换为字符串?我不允许使用字符串追加、子字符串、内爆和爆炸。我也是初学者,所以我不能使用字符串连接。我考虑过使用 (string char) 但我不知道它是如何递归工作的。

或者,考虑到上述相同的限制,我如何能够将字符串列表转换为单个字符串?