2013-01-20 34 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函數使用整數作爲最簡單的狀態形式。在使用整數作爲狀態時,該功能可以執行諸如操作倒計時鐘並將火箭移動一定數量的像素等。