2013-01-20 29 views
1
(big-bang ws 
      (on-tick cth) 
      (on-key keh) 
      (on-mouse meh) 
      ...) 

我知道第一个参数是一个数字,它被描述为世界状态。但对我来说,这似乎是模糊的术语。基本上我不明白这个数字是真的/实际上应该代表什么。我目前看到的两个例子是:“倒计时机制”和“要移动的像素数量”。它到底在做什么?什么是大爆炸函数中的ws真正代表什么?

我对HTDP(第2版)工作的第2章

+0

如果有帮助,您可以将“状态”视为存储以将信息从一个时间片传送到下一个时间片。这就像一辆大卡车,你可以将东西转移到:-)你如何解释这些东西取决于你的程序。 –

回答

2

世界代表了项目的当前状态。在某些程序中,整个状态可以表示为一个单一的数字(例如,只能上下移动的一个ufo)。虽然单个数字就够了,但是很少见。为了表示可以在所有方向上移动的太空船的位置,你需要一个x坐标和一个y坐标。既然世界必须是单一的价值,那么这两个数字就会被放入一个结构中。 HtDP中的以下章节将向您介绍结构以及如何将它们用作世界。

+1

另一种说法是:世界是系统内部“模型”的表示。这一切都是为了表达系统的基本信息。如果我们正在建模一个时钟,那么这个世界可能包含当前的时钟时间。或者它可能由钟针的位置组成!这真的取决于你想要建模的内容,对于我们正在研究的问题,现实的哪些部分是重要的(或不相关的!)。 – dyoo

0

我没有意识到any/c类型的第一个参数。其中,对于未初始化的,意味着第一个参数可以是任何类型(例如:整数,字符串,布尔值,结构,枚举等)。所以在我正在研究的例子中,big-bang函数使用整数作为最简单的状态形式。在使用整数作为状态时,该功能可以执行诸如操作倒计时钟并将火箭移动一定数量的像素等。