Differences
This shows you the differences between two versions of the page.
Next revision | Previous revisionNext revisionBoth sides next revision | ||
teaching:cc4101:tareas:2020-1:tarea1 [2020/04/13 12:49] – Copia de la tarea 1 de 2019-1 kmaillard | teaching:cc4101:tareas:2020-1:tarea1 [2020/04/14 07:12] – [2. Verificación de Tipos [1.5pt]] kmaillard | ||
---|---|---|---|
Line 68: | Line 68: | ||
* Para la aplicación de función se valida que la expresión en posición de función sea efectivamente una función. | * Para la aplicación de función se valida que la expresión en posición de función sea efectivamente una función. | ||
* Para la aplicación de función también se valida que el tipo de la expresión de argumento de la aplicación coincide con el tipo esperado del argumento de la función. | * Para la aplicación de función también se valida que el tipo de la expresión de argumento de la aplicación coincide con el tipo esperado del argumento de la función. | ||
- | * Para la aplicación de un operador se valida que sus operandos tengan el tipo correcto. | + | * Para la aplicación de un operador |
Los mensaje de error de tipo tienen que seguir el siguiente patrón: | Los mensaje de error de tipo tienen que seguir el siguiente patrón: | ||
Line 97: | Line 97: | ||
"Type error in expression fun position 1: expected (Num -> Num) found Num" | "Type error in expression fun position 1: expected (Num -> Num) found Num" | ||
> (typeof (parse '{1 2})) | > (typeof (parse '{1 2})) | ||
- | "Type error in expression app position 1: expected (T -> S) found Num" | + | "Type error in expression app position 1: expected (?T -> ?S) found Num" |
> (typeof (parse '{{fun {x : Num} : Num {+ x x}} {fun {x : Num} : Num 5}})) | > (typeof (parse '{{fun {x : Num} : Num {+ x x}} {fun {x : Num} : Num 5}})) | ||
"Type error in expression app position 2: expected Num found (Num -> Num)" | "Type error in expression app position 2: expected Num found (Num -> Num)" |