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:2017-1:tarea2 [2017/05/29 00:20] fmossoteaching:cc4101:tareas:2017-1:tarea2 [2017/06/04 20:28] (current) – [Listas (1.5 ptos)] elabrada
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:base3.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 start.rkt y tests.rkt {{ :teaching:cc4101:tareas:2017-1:base-tarea2-2017.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!
 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 31: Line 31:
           {pred {Succ {Succ {Zero}}}}})           {pred {Succ {Succ {Zero}}}}})
 {Succ {Zero}} {Succ {Zero}}
 +> (run '{local {{datatype BinTree 
 +                  {Leaf v} 
 +                  {Node v l r}}}
 +        {Node 10 {Leaf 7} {Leaf 2}}})
 +{Node 10 {Leaf 7} {Leaf 2}}        
 </code> </code>
 Observe que ''%%define%%'' y ''%%datatype%%'' sólo pueden usarse en la zona de declaraciones de una expresión ''local''. Al declarar una estructura, la implementación extiende el ambiente usado en el cuerpo de ''local'' con las funciones constructoras de cada variante; y con predicados para determinar si un valor corresponde a la estructura (en general, y para cada variante). Para más detalles, consulte la implementación y tests provistos. Observe que ''%%define%%'' y ''%%datatype%%'' sólo pueden usarse en la zona de declaraciones de una expresión ''local''. Al declarar una estructura, la implementación extiende el ambiente usado en el cuerpo de ''local'' con las funciones constructoras de cada variante; y con predicados para determinar si un valor corresponde a la estructura (en general, y para cada variante). Para más detalles, consulte la implementación y tests provistos.
Line 55: Line 60:
 5 5
 </code>  </code> 
-  - (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-printing 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>