2011-12-19 63 views

回答

10

因为变量不是您可以传递给另一个函数的第一类值。在3.4中,作者实现了使用clear!作为辅助函数的make-mutex函数,该函数使用一个单元格。如果单元格由可变变量表示,那么clear!必须在make-mutex!内定义,以关闭该变量。帮助功能test-and-set!也是如此。

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

5

如果使用变量而不是列表,则程序clear!test-and-set!将不起作用,因为Scheme是按值传递的。