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:2015-1:tarea2 [2015/04/21 18:42] – [P3 - Inferencia de tipos (4.5pt)] flarenasteaching:cc4101:tareas:2015-1:tarea2 [2015/05/11 14:08] (current) – [P2 - Variables fluidas (1.0pt)] flarenas
Line 20: Line 20:
 <code haskell> <code haskell>
 > run "((fun (x) (+ x 1)) 3)" > run "((fun (x) (+ x 1)) 3)"
-4+NumV 4
 </code> </code>
  
Line 38: Line 38:
            (flet (x 10)            (flet (x 10)
              (f 1))))")              (f 1))))")
-11+NumV 11
 </code> </code>
  
Line 94: Line 94:
 Estudie el capitulo 30.2 del PLAI para una explicación detallada de como generar constraints. Estudie el capitulo 30.2 del PLAI para una explicación detallada de como generar constraints.
  
-Defina la función ''%%typeof :: Expr -> TEnv -> [Const] -> (Type, [Const])%%'' que dada una expresión ''Expr''un ambiente de tipos ''TEnv'' y una lista de constraints ''[Const]'', retorna el tipo de la expresión con la lista de constraints que debe ser solucionable para que el programa sea válido en tipos. La función reporta errores solo en caso de identificadores libres; si la lista de constraints generada no es consistente, no retorna errores.+Defina la función ''%%typeof :: Expr -> TEnv -> (Type, [Const])%%'' que dada una expresión ''Expr'' un ambiente de tipos ''TEnv'', retorna el tipo de la expresión con la lista de constraints que debe ser solucionable para que el programa sea válido en tipos. La función reporta errores solo en caso de identificadores libres; si la lista de constraints generada no es consistente, no retorna errores.
  
 === C. Unificación === === C. Unificación ===