2011-12-19 11 views

risposta

10

Poiché una variabile non è un valore di prima classe che è possibile passare a un'altra funzione. In 3.4, gli autori implementano una funzione make-mutex che utilizza clear! come funzione di supporto, che accetta una cella. Se la cella fosse rappresentata da una variabile mutabile, sarebbe necessario definire clear! all'interno di make-mutex! per chiudere quella variabile. Lo stesso vale per la funzione helper test-and-set!.

Avrebbero anche potuto usare, ad esempio, una casella invece di una cella di controllo.

5

Se al posto di un elenco viene utilizzata una variabile, le procedure clear! e test-and-set! non funzioneranno poiché Schema è un valore pass-by-value.