5

著者がシリアライザーのミューテックス部分を実装するとき、彼らはと呼ばれるリストを使用しますcell。しかし、リストには1つの要素しか含まれていないので、変数を使用しないのはなぜですか?

4

2 に答える 2

10

変数は、別の関数に渡すことができるファーストクラスの値ではないためです。3.4では、作成者はセルを取得するヘルパー関数としてmake-mutex使用する関数を実装しています。clear!セルが可変変数で表されている場合、その変数を閉じるにはclear!内部で定義する必要があります。ヘルパー関数make-mutex!についても同様です。test-and-set!

また、consセルの代わりにボックスを使用することもできます。

于 2011-12-19T04:10:09.717 に答える
5

リストの代わりに変数が使用されている場合、Schemeは値渡しであるため、プロシージャclear!とは機能しません。test-and-set!

于 2011-12-19T04:10:23.133 に答える