Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
teaching:cc4101:tareas:2016-1:tarea2 [2016/05/08 21:48] etanterteaching:cc4101:tareas:2016-1:tarea2 [2016/11/13 01:11] (current) – old revision restored (2016/06/01 13:54) fmosso
Line 1: Line 1:
 ====== Tarea 2 ====== ====== Tarea 2 ======
-Esta tarea se distribuye con dos ficheros start.rkt y tests.rkt ({{:teaching:cc4101:resources:tareas:2016-1:base.zip|base-tarea2}}). Considere las definiciones del archivo start.rkt y escriba sus funciones en él. Escriba sus tests en el archivo tests.rkt adjunto. Ambos ficheros deben ser entregados vía U-Cursos. Los tests forman parte de su evaluación!+Esta tarea se distribuye con dos ficheros {{:teaching:cc4101:tareas:2016-1:base3.zip|start2.rkt y tests2.rkt}}. Considere las definiciones del archivo start.rkt y escriba sus funciones en él. Escriba sus tests en el archivo tests.rkt adjunto. Ambos ficheros deben ser entregados vía U-Cursos. Los tests forman parte de su evaluación!
 Consulte las normas de entrega de tareas en http://pleiad.cl/teaching/cc4101. Consulte las normas de entrega de tareas en http://pleiad.cl/teaching/cc4101.
  
Line 57: Line 57:
   - (0.2) Finalmente, para dar una impresión más cómoda trabajando con listas, modifique el pretty-printer para que en el caso de listas, se use la notación ''{list v1 ... vn}'':<code scheme>   - (0.2) Finalmente, para dar una impresión más cómoda trabajando con listas, modifique el pretty-printer para que en el caso de listas, se use la notación ''{list v1 ... vn}'':<code scheme>
 > (run '{list 1 4 6}) > (run '{list 1 4 6})
-{list 1 4 6}</code>+{list 1 4 6}</code> Aquí también, por simplicidad, retornen una string (por ejemplo ''"{list 1 2}"'').
 ===== Evaluación Perezosa (2 ptos)===== ===== Evaluación Perezosa (2 ptos)=====
 MiniScheme+ usa call-by-value como semántica de aplicación de funciones. Sin embargo, es posible agregar evaluación usando call-by-need para casos específicos. MiniScheme+ usa call-by-value como semántica de aplicación de funciones. Sin embargo, es posible agregar evaluación usando call-by-need para casos específicos.
Line 89: Line 89:
 //Nota: Todas las definiciones que se le piden a continuación deben realizarse en el lenguaje MiniScheme+ con las extensiones hasta este punto de la tarea.// //Nota: Todas las definiciones que se le piden a continuación deben realizarse en el lenguaje MiniScheme+ con las extensiones hasta este punto de la tarea.//
  
- Observe que para fines de presentación y de corrección, el intérprete define una conversión entre estructuras ''List'' de MiniScheme+ y listas de Racket. 
   - (0.4) Defina las funciones ''stream-hd'' y ''stream-tl'' para obtener la cabeza y la cola de un stream. Por ejemplo: <code scheme>   - (0.4) Defina las funciones ''stream-hd'' y ''stream-tl'' para obtener la cabeza y la cola de un stream. Por ejemplo: <code scheme>
 (def stream-hd ...) (def stream-hd ...)