Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
teaching:cc4101:tareas:2022-1:tarea2:parte2 [2023/05/08 15:25] – [Parte 2. Memoización (2 ptos.)] tvallejosteaching:cc4101:tareas:2022-1:tarea2:parte2 [2023/05/08 15:33] (current) – [Parte 2. Memoización (2 ptos.)] tvallejos
Line 6: Line 6:
   * (0.3 ptos) Extienda la sintaxis del lenguaje (y por ende, el parser) con la expresión ''{mfun {<id>} <CL>}'' que permite definir una función anónima memoizada.    * (0.3 ptos) Extienda la sintaxis del lenguaje (y por ende, el parser) con la expresión ''{mfun {<id>} <CL>}'' que permite definir una función anónima memoizada. 
   * (0.2 ptos) Extienda el tipo de dato de los valores con un nuevo constructor ''mclosV'' para representar una función memoizada en tiempo de ejecución. La única diferencia con clausuras tradicionales es la presencia de una tabla de memoización.   * (0.2 ptos) Extienda el tipo de dato de los valores con un nuevo constructor ''mclosV'' para representar una función memoizada en tiempo de ejecución. La única diferencia con clausuras tradicionales es la presencia de una tabla de memoización.
 +
 +<note>La librería functools de Python posee un [[https://docs.python.org/3/library/functools.html#functools.lru_cache|decorador]] para memoizar los llamados de función y así ahorrar tiempo cuando se llama periódicamente a función con los mismos argumentos.</note>
  
 Para implementar la tabla de memoización de una función, usen una tabla de hash ([[https://docs.racket-lang.org/reference/hashtables.html|documentación]]), que permite asociar llaves a valores (las llaves y valores pueden ser de cualquier tipo). A continuación, les dejamos un resumen de la interfaz. Para implementar la tabla de memoización de una función, usen una tabla de hash ([[https://docs.racket-lang.org/reference/hashtables.html|documentación]]), que permite asociar llaves a valores (las llaves y valores pueden ser de cualquier tipo). A continuación, les dejamos un resumen de la interfaz.