Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision |
teaching:cc4101:tareas:2024-1:tarea2:parte2 [2024/05/21 14:53] – etanter | teaching:cc4101:tareas:2024-1:tarea2:parte2 [2024/05/21 15:03] (current) – etanter |
---|
**Observaciones**: | **Observaciones**: |
* Cada ''mfun'' tiene su propia memoria. | * Cada ''mfun'' tiene su propia memoria. |
* Si usan los valores del lenguaje como llaves, se van a encontrar con problemas con el mecanismo de hashing normal dado que los valores son mutables debido a las tablas de hash de memoización ((ver [[https://docs.racket-lang.org/reference/hashtables.html#(elem._(caveat._mutable-keys))|documentación]] sobre hash tables y valores mutables.)). Para resolver este problema, en vez de usar ''make-hash'' para crear sus tablas de hash, tienen que usar ''make-hashalw'': este constructor retorna una tabla que usa ''equal-always?''((ver [[https://docs.racket-lang.org/reference/Equality.html#%28def._%28%28quote._~23~25kernel%29._equal-always~3f%29%29|documentación]] sobre igualdad de estructuras mutables)) para comparar llaves y por ende se comporta de manera coherente con llaves mutables. | * Si usan los valores del lenguaje como llaves, se van a encontrar con problemas con el mecanismo de hashing normal dado que los valores son mutables (por las tablas de hash de memoización) ((ver [[https://docs.racket-lang.org/reference/hashtables.html#(elem._(caveat._mutable-keys))|documentación]] sobre hash tables y valores mutables.)). Para resolver este problema, en vez de usar ''make-hash'' para crear sus tablas de hash, tienen que usar ''make-hashalw'': este constructor retorna una tabla que usa ''equal-always?''((ver [[https://docs.racket-lang.org/reference/Equality.html#%28def._%28%28quote._~23~25kernel%29._equal-always~3f%29%29|documentación]] sobre igualdad de estructuras y mutación.)) para comparar llaves y por ende se comporta de manera coherente con llaves mutables. |
| |