Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
teaching:cc4101:tareas:tarea1xyz [2023/04/05 20:02] – [Parte 1. Lenguaje con funciones de primer orden (2.0 ptos.)] tvallejosteaching:cc4101:tareas:tarea1xyz [2023/04/05 21:02] (current) etanter
Line 56: Line 56:
 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 ''fst'' y ''snd'' obtienen el primer y segundo elemento de un par, respectivamente (similar a ''car'' y ''cdr'' de Racket). Las demás expresiones siguen la presentación estándar vista en clases. 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 ''fst'' y ''snd'' obtienen el primer y segundo elemento de un par, respectivamente (similar a ''car'' y ''cdr'' de Racket). Las demás expresiones siguen la presentación estándar vista en clases.
  
-Los programas que terminan reducen a valores. Estos pueden ser números, valores de verdad o pares de valores. Hasta ahora solo habíamos visto valores que fueran númerospero ahora los valores pueden tener distintas formas. Y como nos interesa distinguir entre las formas de nuestros valores, es necesario que crear un tipo inductivo que siga dicha estructura. Dicho tipo se encuentra en el código fuente de la parte 1.  +Los programas que terminan reducen a valores. Estos pueden ser números, booleanos o pares de valores. Siguiendo buenas prácticasdefinimos un tipo de dato inductivo ''Val'' para los valores (provisto en el código fuente de la parte 1).
- +
-<code scheme> +
-(deftype Val +
-  (numV n) +
-  (boolV b) +
-  (pairV lV rV)) +
-</code>+
  
 Algunos ejemplos de programas válidos para este lenguaje pueden ser: Algunos ejemplos de programas válidos para este lenguaje pueden ser: