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 15:24] – [3.3 Transformación a CL] msegur | 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 | ||
| <note tip> | <note tip> | ||
| Algunas cosas que se debe tener en cuenta: | Algunas cosas que se debe tener en cuenta: | ||
| - | * 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 " | * 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 '' | ||
| </ | </ | ||

