2011-12-19 16 views

Respuesta

10

Porque una variable no es un valor de primera clase que puede pasar a otra función. En 3.4, los autores implementan una función make-mutex que usa clear! como función auxiliar, que toma una celda. Si la celda estaba representada por una variable mutable, entonces clear! debería definirse dentro de make-mutex! para cerrar esa variable. Lo mismo ocurre con la función auxiliar test-and-set!.

También podrían haber usado, por ejemplo, una caja en lugar de una celda de cons.

5

Si se utiliza una variable allí en lugar de una lista, los procedimientos clear! y test-and-set! no funcionarán dado que el Esquema es pasable por valor.

Cuestiones relacionadas