Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| teaching:cc4101:tareas:2026-1:tarea2:parte3 [2026/05/11 03:24] – [3.2 Chequeo de tipos] hint actualizacion type-ast bduarte | teaching:cc4101:tareas:2026-1:tarea2:parte3 [2026/05/11 15:48] (current) – [3.3 Transformación a CL] msegur | ||
|---|---|---|---|
| Line 88: | Line 88: | ||
| ==== 3.3 Transformación a CL ==== | ==== 3.3 Transformación a CL ==== | ||
| - | Ahora que el lenguaje soporta tipos con modificadores, | + | Ahora que el lenguaje soporta tipos con modificadores, |
| + | |||
| + | Por ejemplo, si se requiere un argumento con estrategia lazy o by-name, y se usa un argumento que tiene evaluación temprana, entonces hay que ajustar la expresión de tal manera que se retrase su evaluación. Una forma de retrasar la evaluación de una expresión '' | ||
| + | |||
| + | <note tip> | ||
| + | Algunas cosas que se debe tener en cuenta: | ||
| + | * Recuerde que la diferencia entre lazy (a.k.a. by-need) y by-name es que la primera evalúa una sola vez la expresión y luego " | ||
| + | * En el caso de '' | ||
| + | </ | ||
| * (1.4 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. | ||
| Line 95: | Line 104: | ||
| </ | </ | ||
| - | <note tip> | ||
| - | Para una correcta transformación, | ||
| - | * Si se requiere un argumento con estrategia lazy o by-name, y se usa un argumento que tiene evaluación temprana, entonces hay que ajustar la expresión de tal manera que se retrase su evaluación. | ||
| - | * Una forma de retrasar la evaluación de una expresión '' | ||
| - | * Si se requiere una evaluación temprana y el argumento fue declarado lazy o by-name, entonces es necesario ajustarlo para que efectivamente se evalúe en ese punto. | ||
| - | * Si tanto la función como el argumento calzan en la estrategia, entonces no hay nada que hacer. | ||
| - | * Recuerde que la diferencia entre lazy (a.k.a. by-need) y by-name es que la primera evalúa una sola vez la expresión y luego " | ||
| - | </ | ||

