问题标签 [htdp]

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

scheme - 为什么返回空而不是列表本身?

第 4 章,HtDP。

注意:我在其他问题中也看到了这一点。

是出于清晰的原因还是算法的原因,我不知道,基本情况返回空而不是列表本身是空的。

例子:

我认为这同样正确。

0 投票
1 回答
1820 浏览

scheme - Racket 中的重叠模块导入

我想在 Racket 中加载图像并为其设置动画。我可以在 Dr. Racket 中轻松做到这一点,但我正在使用 Emacs 和 Geiser。要加载图像,我需要:

接下来,为了将这个图像绘制到屏幕上,我打算使用 big-bang 模块。要加载此模块,我必须:

但我得到这个错误:

这基本上意味着我不能两次导入同一个模块。但我需要这两个库。我该如何避免这个问题?

0 投票
1 回答
660 浏览

racket - 在 Racket 源代码中选择学生语言

我正在尝试为 DrRacket 编写一个源文件,该文件指定如何设计程序教学语言中的一种语言(请参阅Racket 文档)。我知道我可以在 DrRacket 菜单中选择这种语言,但我想使用#lang指令指定它并让 DrRacket 自动识别该语言。

我找不到任何关于我需要使用的字符串的文档,而不是racket在初始行中

我在哪里可以找到这方面的文档?还是只能从 DrRacket 的菜单中选择这些语言?

0 投票
1 回答
486 浏览

racket - 为什么我的函数有时会返回 (shared ...) 而不是 (list ...)

我使用以下函数将 posn 列表转换为三元组(posn、posn、symbol)列表,以供 draw-solid-line 以后使用:

当我将它应用于 (list (make-posn 10 10) (make-posn 10 20)) 我得到

正如预期的那样,但是当我向列表中添加更多 posns 时,我得到以下信息:

我觉得很困惑。

它显然表现得像我需要的列表,因为它可以以预期的方式绘制,但我只是不明白 (shared ...) 是什么以及为什么我的函数返回这种类型的值。

我唯一的线索是它应该与列表中 posns 的存在有关,因为我没有得到与符号列表相同的行为。

以防万一:我正在使用 HTDP 高级教学语言。

谁能澄清我为什么得到这种类型的输出?

0 投票
5 回答
10153 浏览

scheme - 如何在 DrRacket 中进行 powerset?

我正在使用带有 DrRacket 列表缩写的起始语言,并且想要递归地创建一个 powerset,但无法弄清楚如何去做。我目前有这么多

任何帮助都会很好。

0 投票
2 回答
40 浏览

functional-programming - 使用结构中实例化的参数

我目前正在完成htdp 书的第 7 章,并正在尝试创建蜘蛛结构的实例:

我的问题是我想将数字从函数中传递(make-spider 4)给函数。我试过了,但当然它说它是在定义之前使用的。任何帮助表示赞赏。spiderchecka-spider(spider-legs a-spider)

谢谢!

0 投票
2 回答
1928 浏览

scheme - “如何设计程序”(HTDP)第一版和第二版之间的区别

我在互联网上搜索了几个小时,但没有找到令人满意的答案来说明 HTDP 的第一版和第二版之间的区别(如何设计程序)?

为什么我应该从第二个版本开始,而不是第一个?由于第二版还没有完成,我担心我可能会回到我不得不切换回第一版的地步。

问题是:

  1. 到第一版的哪个部分/章节?
  2. 我可以来回切换吗?第二版的结构不是完全不同吗?或者这两个版本之间的各个章节是否兼容?

我希望有一个人可以帮助我。

0 投票
2 回答
4406 浏览

scheme - 关于球拍:#lang 未启用

我必须学习如何设计程序一段时间。但是一旦我开始使用我的 Emacs 学习 htdp,我遇到了一些问题。问题是:我输入了 #lang racket ,但它只是显示:

我使用'require'来加载路径。

它也无法工作。

你能帮我解决吗?PS我的系统是Fedora20。

0 投票
1 回答
853 浏览

scheme - 球拍 - 在某些约束下创建地板功能

我非常坚持尝试创建具有以下约束的地板功能:

我只允许在本页第 1.5 节中使用以下功能:http: //docs.racket-lang.org/htdp-langs/beginner.html

但是,您不能使用 floor、round、ceiling 和 sgn 功能。除此之外,您无法使用递归、条件、列表甚至辅助函数。

注意:仅使用初学者的学生文档

0 投票
1 回答
847 浏览

racket - *极度*慢(对于 `(+ 1 1)` 超过 10 秒),语言为“如何设计程序 - 初学者”

我刚刚安装了 DrRacket,并尝试了语言“如何设计程序 - 初学者”。

Racket - 一种可编程的编程语言

球拍 - 入门

我运行(+ 1 1),它需要十多秒才能显示出来:

据我所知,我的安装几乎是“开箱即用”的。

我想知道的是我的经历是否不寻常,如果是
这样的话,是否有任何明显的解决方法
(我查看了设置并没有发现任何明显的调整),
或者整个 HTDP 语言是否是悄悄地被遗弃了还是什么……?

编辑 1

我有这些文件:

编辑 2 - cpu 和硬盘规格

中央处理器

高清

编辑 3 个命令行时间

在 HTDP-beginner 中跑(+ 1 1)了 3 次——超过 5 秒。

(+ 1 1)#lang racket3 次—— 2 秒多一点。

编辑 4

当 DrRacket在 lang HTDP-beginner 中运行时free -h每秒运行一次 (除了 DrRacket 和我的基本系统(即窗口管理器等)之外,不运行任何其他应用程序) (顺便说一下,这是鱼壳):(+ 1 1)

http://pastebin.com/2RdZAuXj

那时我不得不杀死 DrRacket,因为一切都冻结了。

无论如何,是的,它显然在泄漏。

每次我在 DrRacket 中重新运行代码时,内存使用量都会上升并保持不变。

我只运行了大约 22 次(?)多
(所以总共可能是 30 次?)
,直到它开始接近极限
,我杀死了它以解冻系统。

我想我应该正常尝试一下#lang racket,看看会发生什么......

编辑 5

是的,它以同样的方式泄漏:

http://pastebin.com/373PNnY7