Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
teaching:cc4101:tareas:tarea1xyz [2023/04/04 23:38] – [Parte 1. Lenguaje con funciones de primer orden (2.0 ptos.)] tvallejos | teaching:cc4101:tareas:tarea1xyz [2023/04/05 21:02] (current) – etanter | ||
---|---|---|---|
Line 17: | Line 17: | ||
- | Deben entregar via U-cursos **un archivo .zip** que contenga los siguientes archivos: '' | + | Deben entregar via U-cursos **un archivo .zip** que contenga los siguientes archivos: '' |
Line 52: | Line 52: | ||
| {with {{< | | {with {{< | ||
| {<id> < | | {<id> < | ||
- | |||
- | < | ||
- | | < | ||
- | | <pair <val> < | ||
</ | </ | ||
Un programa está compuesto de 0 o más definiciones de funciones, además de una expresión final que sirve de punto de entrada (como el //main// en C y Java). Una definición de función incluye el nombre de la función, el nombre de los parámetros formales, y finalmente la expresión del cuerpo de la función. Las expresiones '' | Un programa está compuesto de 0 o más definiciones de funciones, además de una expresión final que sirve de punto de entrada (como el //main// en C y Java). Una definición de función incluye el nombre de la función, el nombre de los parámetros formales, y finalmente la expresión del cuerpo de la función. Las expresiones '' | ||
+ | |||
+ | Los programas que terminan reducen a valores. Estos pueden ser números, booleanos o pares de valores. Siguiendo buenas prácticas, definimos un tipo de dato inductivo '' | ||
Algunos ejemplos de programas válidos para este lenguaje pueden ser: | Algunos ejemplos de programas válidos para este lenguaje pueden ser: | ||
Line 182: | Line 180: | ||
< | < | ||
> (typecheck '{3}) | > (typecheck '{3}) | ||
- | (Num) </ | + | (numT) </ |
> (typecheck ' | > (typecheck ' | ||
{f {< 3 4}}}) | {f {< 3 4}}}) | ||
- | (Num) </ | + | (numT) </ |
> (typecheck ' | > (typecheck ' | ||
{one #t}}) | {one #t}}) | ||
Line 212: | Line 210: | ||
{{define {positive {x : Num}} {< 0 x}} | {{define {positive {x : Num}} {< 0 x}} | ||
| | ||
- | {+ y -x}} | + | |
{sub 5 3}} | {sub 5 3}} | ||
</ | </ | ||
Line 232: | Line 230: | ||
<code scheme> | <code scheme> | ||
{{define {positive {x : Num}} {< 0 x}} | {{define {positive {x : Num}} {< 0 x}} | ||
- | | + | |
| | ||
</ | </ | ||
Line 248: | Line 246: | ||
> (run ' | > (run ' | ||
| | ||
- | #t} | ||
| | ||
" | " | ||
</ | </ |