Cuando los autores implementan la parte mutex de los serializadores, usan una lista llamada cell
. Pero la lista solo contiene un elemento, entonces ¿por qué no solo usar una variable?El implemento de exclusión mutua en el SICP Sección 3.4
5
A
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
- 1. exclusión mutua y semáforos
- 2. Exclusión mutua PHP (mutex)
- 3. ARM cortex: exclusión mutua utilizando el bit de bandas
- 4. pthread_cond_wait y requisito de exclusión mutua
- 5. Cassandra bloqueo de exclusión mutua (sincronización)
- 6. boost lanzamiento de exclusión mutua (impar?) Excepción
- 7. Exclusión mutua para N subprocesos asincrónicos
- 8. ¿Diferencia entre exclusión mutua y sincronización?
- 9. ¿aún se recomienda el SICP?
- 10. SICP sqrt NullPointerException
- 11. ¿Cómo implemento el almacenamiento en caché asincrónico?
- 12. Exclusión de Solr en stats.field?
- 13. con recursión mutua
- 14. ¿Cómo implemento la navegación específica de sección en Ruby on Rails?
- 15. IOS autenticación mutua
- 16. Información mutua de MATLAB Matrix
- 17. ¿Cómo entender profundamente el diagrama de flujo de señal descrito en SICP?
- 18. SICP Ejercicio 1.5
- 19. Defypes de referencia mutua en Clojure
- 20. SICP 1.31: Aprox. Pi
- 21. SICP Vídeo Conferencia 2
- 22. ¿Qué idioma utilizarías para el autoaprendizaje del SICP?
- 23. Constante Inno Setup en el Código Sección
- 24. PHP ¿Cómo implemento el proceso de cola en php
- 25. ¿Cómo implemento la finalización de pestañas en el shell node.js?
- 26. Autenticación mutua con servicios web
- 27. Látex, NINGÚN número de sección en TOC pero visible en el encabezado de la sección actual
- 28. ¿Cuál es la explicación para el ejercicio 1.6 en el SICP?
- 29. ¿Qué idioma en DrScheme para SICP?
- 30. SICP ejercicio 1.5 y 1.6