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 03:29] – [Tarea 2] fmossoteaching:cc4101:tareas:2017-1:tarea2 [2017/06/04 23:28] (current) – [Listas (1.5 ptos)] elabrada
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>