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

user-interface - 如何使用 Lisp 制作 GUI:DrScheme 或 Common Lisp

或者创建 GUI 需要做的基本工作。我知道 GUI 的基本组件,但是从哪里开始。我只是一个自学的人,我正在阅读本书末尾的“如何设计程序”(HtDP),作者建议要成为一名程序员,需要具备GUI和CGI计算机网络的知识。最后两个的信息很容易找到。但似乎很少有书谈论如何创建 GUI。我想也许它在设计很少有人关心的计算机程序的过程中太“低”了。

0 投票
1 回答
1984 浏览

scheme - 为什么我不能在函数体中进行两次 make 函数调用?

所以我正在阅读如何设计程序第二版的第一章。我相信我取得了不错的进步。但是有一个“建议”将另一个图形添加到网格中。每次我尝试都会出错。在这一点上,我被困住了。下面是代码和错误。

注意:ROCKET 图像在第 1 章中。我只是将它复制并粘贴到 IDE 中。

注意:“建议”是:如何改变程序,使火箭降落在比场景底部高 10 像素的平坦岩床上?也不要忘记改变风景。

HTDP 第 1 章

这是有效的代码。

这是不起作用的代码:

我得到的错误是:

定义:函数体只需要一个表达式,但发现了 1 个额外的部分

0 投票
2 回答
825 浏览

scheme - HtDW 与 HtDP 有何关联?

因此,有一个与如何设计程序 (HtDP) 配套的 PDF,称为 How to Design Worlds (HtDW)。我想知道我必须阅读/知道多少 HtDP 才能开始阅读 HtDW?这两本书的章节是否有任何关联?

0 投票
2 回答
395 浏览

syntax - 为什么这是合法的(球拍)计划?

我正在通过htdp并在一开始的某个地方发现了这个:-

解释为什么以下句子是非法定义: 1. (define (f 'x) x)

但是,它在球拍中运行良好:

显然,我错过了一些东西......究竟是什么?

0 投票
2 回答
491 浏览

emacs - 用于模仿 Scribble 或 HTDP 示例代码示例的 Racket Emacs 模式?

我真的很喜欢如何设计程序中代码示例的语法突出显示和着色。例如:

http://www.htdp.org/2003-09-26/Book/curriculum-ZH-9.html#node_sec_6.5

有没有人有这样的东西作为 Emacs 主要模式编辑源代码的起点?

0 投票
1 回答
1919 浏览

image - 如何更改球拍中的图像大小

我正在使用racket并需要背景 bitmap图片制作游戏。但是我选择的图像太大了。如何更改尺寸?是)我有的:

0 投票
4 回答
547 浏览

scheme - 这可以变成尾递归函数吗?

通过 HtDP 并遇到一个问题是:设计函数乘法。它消耗一个自然数 n 并将其与某个任意数 x 相乘,而不使用 *。

这就是我想出的:

它有效,但我认为这不是最好的解决方案。由于这可以作为 for 循环解决,根据我的理解,这应该是尾递归的。

0 投票
2 回答
198 浏览

scheme - What is ws in the big-bang function really representing?

I know that the first parameter is a number and it's the described as the world state. But that just seems like vague terminology to me. Basically I don't understand what this number is really/actually supposed to represent. Two examples I've seen so far are: "countdown mechanism" and "number of pixels to be moved". What exactly is it doing?

I am working Chapter 2 on HtDP (2nd Edition)

0 投票
1 回答
585 浏览

racket - 我应该如何创建图像的行和列?

首先,我正在浏览HtDP 第 2 版并使用BSL语言包。

我目前正在练习 131,这就是它所说的:

除此之外,我正在查看地点图像,但在如何执行此操作方面没有任何突出之处。这些函数不获取图像列表,而是获取单个图像。例如:(除了 rect1 rect2 rect3)而不是(除了(列表 rect1 rect2 rect3))。另外,如果我按照函数的定义方式进行定义,似乎我会在图像上重叠,因为函数本身是独立的。基本上我所说的重叠是在每一行的第一张图片上。

我不是在寻找答案(尽管如果你得到它,我会接受它),而是在正确方向上的暗示、标志、神圣干预。

0 投票
2 回答
654 浏览

scheme - 如何改进 Racket 中的这个辅助功能?

我正在使用 BSL 语言在 HtDP 第 4 章中工作。

我正在处理的问题是:

练习 136:如果你运行 main,按下空格键(开枪),然后等待很长一段时间,镜头从画布上消失。但是,当您关闭世界画布时,结果是仍然包含这个不可见镜头的世界。

设计一个替代的 tock 函数,它不仅在每个时钟周期移动一个像素,而且还消除了那些坐标将它们放在画布上方的镜头。提示:您可能希望考虑为递归 cond 子句设计一个辅助函数。

我想出的解决方案如下(在剧透中)。但是,我觉得我在做一些多余的事情。基本上我对辅助功能的应用不太正确。

更新:(
这比以前干净多了)

TESTS补充说:
我仍在进行测试。

添加了世界功能的测试: