Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| teaching:cc4101:tareas:2025-1:tarea2:parte3 [2025/05/11 21:19] – [3.2 Chequeo de tipos] msegur | teaching:cc4101:tareas:2025-1:tarea2:parte3 [2025/05/14 17:03] (current) – [3.3 Transformación a CL] dibanez | ||
|---|---|---|---|
| Line 5: | Line 5: | ||
| En esta sección van a extender el lenguaje SL para que se pueda especificar la estrategia de evaluación de cada argumento si es necesario, ya sea con semántica // | En esta sección van a extender el lenguaje SL para que se pueda especificar la estrategia de evaluación de cada argumento si es necesario, ya sea con semántica // | ||
| - | La extensión de SL consiste en agregar // | + | La extensión de SL consiste en agregar // |
| Nota: '' | Nota: '' | ||
| Line 14: | Line 14: | ||
| (result 20 ' | (result 20 ' | ||
| - | ;; Una función de tipo (lazy Num -> Num), usará evaluación lazy/ | + | ;; Una función de tipo ((lazy Num) -> Num), usará evaluación lazy/ |
| > (run-p-sl '{with {f {fun {x : {lazy Num}} -> Num : {+ x x}}} | > (run-p-sl '{with {f {fun {x : {lazy Num}} -> Num : {+ x x}}} | ||
| {f {printn 10}}}) | {f {printn 10}}}) | ||
| (result 20 ' | (result 20 ' | ||
| - | ;; Una función de tipo (name Num -> Num), usará evaluación name/ | + | ;; Una función de tipo ((name Num) -> Num), usará evaluación name/ |
| > (run-p-sl '{with {f {fun {x : {name Num}} -> Num : {+ x x}}} | > (run-p-sl '{with {f {fun {x : {name Num}} -> Num : {+ x x}}} | ||
| {f {printn 10}}}) | {f {printn 10}}}) | ||
| Line 25: | Line 25: | ||
| ;; Otro ejemplo de lazy. Note que efectivamente al evaluarla se comporta correctamente. | ;; Otro ejemplo de lazy. Note que efectivamente al evaluarla se comporta correctamente. | ||
| - | > (run-p-sl '{with {f {fun {x : {lazy Num} -> Num : 1}}} | + | > (run-p-sl '{with {f {fun {x : {lazy Num}} -> Num : 1}} |
| {f {printn 10}}}) | {f {printn 10}}}) | ||
| (result 1 ' | (result 1 ' | ||
| Line 75: | Line 75: | ||
| <note important> | <note important> | ||
| - | La función '' | + | La función '' |
| - | + | Por ejemplo, '' | |
| - | Por ejemplo, '' | + | |
| '' | '' | ||
| </ | </ | ||
| * (0.1 ptos) Actualice '' | * (0.1 ptos) Actualice '' | ||
| - | * (0.1 ptos) Escriba tests que demuestran el buen funcionamiento del typechecker en presencia de modificadores. | ||
| ---- | ---- | ||
| Line 89: | Line 87: | ||
| Ahora que el lenguaje soporta tipos con modificadores, | Ahora que el lenguaje soporta tipos con modificadores, | ||
| - | * (1.0 pto) Modifique la función de transformación para que se apliquen los ajustes necesarios. | + | * (1.4 pto) Modifique la función de transformación para que se apliquen los ajustes necesarios. |
| - | * (0.3 ptos) Escriba tests, usando lo implementado | + | |
| + | <note important> | ||
| + | Asegúrese de realizar los ajustes apropiados | ||
| + | </ | ||
| <note tip> | <note tip> | ||

