2011-12-19 45 views

回答

10

因爲變量不是您可以傳遞給另一個函數的第一類值。在3.4中,作者實現了使用clear!作爲輔助函數的make-mutex函數,該函數使用一個單元格。如果單元格由可變變量表示,那麼clear!必須在make-mutex!內定義,以關閉該變量。幫助功能test-and-set!也是如此。

他們也可以使用,比如一個盒子而不是一個cons cell。

5

如果使用變量而不是列表,則程序clear!test-and-set!將不起作用,因爲Scheme是按值傳遞的。