问题标签 [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.
scheme - 为什么返回空而不是列表本身?
第 4 章,HtDP。
注意:我在其他问题中也看到了这一点。
是出于清晰的原因还是算法的原因,我不知道,基本情况返回空而不是列表本身是空的。
例子:
我认为这同样正确。
scheme - Racket 中的重叠模块导入
我想在 Racket 中加载图像并为其设置动画。我可以在 Dr. Racket 中轻松做到这一点,但我正在使用 Emacs 和 Geiser。要加载图像,我需要:
接下来,为了将这个图像绘制到屏幕上,我打算使用 big-bang 模块。要加载此模块,我必须:
但我得到这个错误:
这基本上意味着我不能两次导入同一个模块。但我需要这两个库。我该如何避免这个问题?
racket - 在 Racket 源代码中选择学生语言
我正在尝试为 DrRacket 编写一个源文件,该文件指定如何设计程序教学语言中的一种语言(请参阅Racket 文档)。我知道我可以在 DrRacket 菜单中选择这种语言,但我想使用#lang
指令指定它并让 DrRacket 自动识别该语言。
我找不到任何关于我需要使用的字符串的文档,而不是racket
在初始行中
我在哪里可以找到这方面的文档?还是只能从 DrRacket 的菜单中选择这些语言?
racket - 为什么我的函数有时会返回 (shared ...) 而不是 (list ...)
我使用以下函数将 posn 列表转换为三元组(posn、posn、symbol)列表,以供 draw-solid-line 以后使用:
当我将它应用于 (list (make-posn 10 10) (make-posn 10 20)) 我得到
正如预期的那样,但是当我向列表中添加更多 posns 时,我得到以下信息:
我觉得很困惑。
它显然表现得像我需要的列表,因为它可以以预期的方式绘制,但我只是不明白 (shared ...) 是什么以及为什么我的函数返回这种类型的值。
我唯一的线索是它应该与列表中 posns 的存在有关,因为我没有得到与符号列表相同的行为。
以防万一:我正在使用 HTDP 高级教学语言。
谁能澄清我为什么得到这种类型的输出?
scheme - 如何在 DrRacket 中进行 powerset?
我正在使用带有 DrRacket 列表缩写的起始语言,并且想要递归地创建一个 powerset,但无法弄清楚如何去做。我目前有这么多
任何帮助都会很好。
functional-programming - 使用结构中实例化的参数
我目前正在完成htdp 书的第 7 章,并正在尝试创建蜘蛛结构的实例:
我的问题是我想将数字从函数中传递(make-spider 4)
给函数。我试过了,但当然它说它是在定义之前使用的。任何帮助表示赞赏。spidercheck
a-spider
(spider-legs a-spider)
谢谢!
scheme - “如何设计程序”(HTDP)第一版和第二版之间的区别
我在互联网上搜索了几个小时,但没有找到令人满意的答案来说明 HTDP 的第一版和第二版之间的区别(如何设计程序)?
为什么我应该从第二个版本开始,而不是第一个?由于第二版还没有完成,我担心我可能会回到我不得不切换回第一版的地步。
问题是:
- 到第一版的哪个部分/章节?
- 我可以来回切换吗?第二版的结构不是完全不同吗?或者这两个版本之间的各个章节是否兼容?
我希望有一个人可以帮助我。
scheme - 关于球拍:#lang 未启用
我必须学习如何设计程序一段时间。但是一旦我开始使用我的 Emacs 学习 htdp,我遇到了一些问题。问题是:我输入了 #lang racket ,但它只是显示:
我使用'require'来加载路径。
它也无法工作。
你能帮我解决吗?PS我的系统是Fedora20。
scheme - 球拍 - 在某些约束下创建地板功能
我非常坚持尝试创建具有以下约束的地板功能:
我只允许在本页第 1.5 节中使用以下功能:http: //docs.racket-lang.org/htdp-langs/beginner.html。
但是,您不能使用 floor、round、ceiling 和 sgn 功能。除此之外,您无法使用递归、条件、列表甚至辅助函数。
注意:仅使用初学者的学生文档
racket - *极度*慢(对于 `(+ 1 1)` 超过 10 秒),语言为“如何设计程序 - 初学者”
我刚刚安装了 DrRacket,并尝试了语言“如何设计程序 - 初学者”。
我运行(+ 1 1)
,它需要十多秒才能显示出来:
据我所知,我的安装几乎是“开箱即用”的。
我想知道的是我的经历是否不寻常,如果是
这样的话,是否有任何明显的解决方法
(我查看了设置并没有发现任何明显的调整),
或者整个 HTDP 语言是否是悄悄地被遗弃了还是什么……?
编辑 1
我有这些文件:
编辑 2 - cpu 和硬盘规格
中央处理器
高清
编辑 3 个命令行时间
在 HTDP-beginner 中跑(+ 1 1)
了 3 次——超过 5 秒。
跑(+ 1 1)
了#lang racket
3 次—— 2 秒多一点。
编辑 4
当 DrRacket在 lang HTDP-beginner 中运行时free -h
每秒运行一次
(除了 DrRacket 和我的基本系统(即窗口管理器等)之外,不运行任何其他应用程序)
(顺便说一下,这是鱼壳):(+ 1 1)
那时我不得不杀死 DrRacket,因为一切都冻结了。
无论如何,是的,它显然在泄漏。
每次我在 DrRacket 中重新运行代码时,内存使用量都会上升并保持不变。
我只运行了大约 22 次(?)多
(所以总共可能是 30 次?)
,直到它开始接近极限
,我杀死了它以解冻系统。
我想我应该正常尝试一下#lang racket
,看看会发生什么......
编辑 5
是的,它以同样的方式泄漏: