Differences

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

Link to this comparison view

Next revision
Previous revision
teaching:cc4101:tareas:2016-2:tarea1 [2016/10/05 23:08] – created fmossoteaching:cc4101:tareas:2016-2:tarea1 [2016/10/18 18:39] (current) – [P3 - RunType (1.0pt)] fmosso
Line 73: Line 73:
    * El tipo de una función consiste en el tipo del argumento (a la izquierda) y en el tipo del cuerpo (a la derecha);    * El tipo de una función consiste en el tipo del argumento (a la izquierda) y en el tipo del cuerpo (a la derecha);
    * El tipo de una aplicación es ''(TVar X)'' en donde ''X'' es un nuevo id    * El tipo de una aplicación es ''(TVar X)'' en donde ''X'' es un nuevo id
 +   * El tipo del if0 es el tipo de la branch ''tb''
  
 Para obtener la lista de constraint siga la siguiente tabla: Para obtener la lista de constraint siga la siguiente tabla:
Line 162: Line 163:
 Una vez que se obtiene la lista con las variables de tipos, el type checker debe usarla para retornar al usuario un tipo. Una vez que se obtiene la lista con las variables de tipos, el type checker debe usarla para retornar al usuario un tipo.
  
-Defina la función **''lookup-list :: List[Constraints] x Tvar -> Type''** que dada una lista de constrains un tipo ''T'', busca en el ambiente el tipo que esta asociado a la variable de tipo ''T''.+Defina la función **''lookup-list :: List[Constraints] x Tvar -> Type''** que dada una lista de constrains un tipo ''T'', busca en la lista el tipo que esta asociado a la variable de tipo ''T''.
  
 Finalmente defina la función **''runType :: S-Expr -> Type''** que dada una s-expresión, retorna su tipo (o arroja un error). Finalmente defina la función **''runType :: S-Expr -> Type''** que dada una s-expresión, retorna su tipo (o arroja un error).