Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
teaching:cc4101:tareas:2024-1:tarea1b [2024/04/11 22:44] – [Parte 1. Lenguaje con funciones de primer orden (1.5 ptos.)] gricci | teaching:cc4101:tareas:2024-1:tarea1b [2025/04/08 22:09] (current) – [Tarea 1b (Entrega: Domingo 21 de Abril de 2024)] dibanez | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Tarea 1b (Entrega: Domingo | + | ====== Tarea 1b (Entrega: Domingo |
==== Lenguaje con tipos estáticos ==== | ==== Lenguaje con tipos estáticos ==== | ||
Line 113: | Line 113: | ||
} | } | ||
</ | </ | ||
+ | Además de lo anterior, asumiremos por simplicidad que en los bindings de un mismo '' | ||
+ | <code scheme> | ||
+ | { | ||
+ | {with {{x 2} | ||
+ | {x 4}} | ||
+ | x} | ||
+ | } | ||
+ | </ | ||
* Debe verificar en tiempo de ejecución que los argumentos de los operadores numéricos sean numéricos, que los argumentos de los operadores booleanos sean booleanos, y que los argumentos de los operadores de pares sean pares (En la parte 2 se alineará la verificación dinámica con la verificación estática). | * Debe verificar en tiempo de ejecución que los argumentos de los operadores numéricos sean numéricos, que los argumentos de los operadores booleanos sean booleanos, y que los argumentos de los operadores de pares sean pares (En la parte 2 se alineará la verificación dinámica con la verificación estática). | ||
* Considere que la igualdad solo es válida sobre números. | * Considere que la igualdad solo es válida sobre números. | ||
Line 177: | Line 185: | ||
- **[0.2 pts]** '' | - **[0.2 pts]** '' | ||
- | El testing recibe **0.3 pts**. | + | El testing recibe **0.3 pts** |
----- | ----- | ||
Line 259: | Line 266: | ||
Para poder realizar un checkeo de tipos estático, necesitaremos: | Para poder realizar un checkeo de tipos estático, necesitaremos: | ||
- | - **[0.7 pts]** Implementar la función '' | + | - **[0.7 pts]** Implementar la función '' |
- | - **[0.4 pts]** Implementar '' | + | - **[0.4 pts]** Implementar '' |
- **[0.2 pts]** Implementar '' | - **[0.2 pts]** Implementar '' | ||
- | - **[0.1 pts]** Extender la función '' | + | - **[0.1 pts]** Extender la función '' |
- | El testing de esta parte recibe **0.5 pts**. | ||
**Observaciones importantes**: | **Observaciones importantes**: | ||
Line 303: | Line 309: | ||
¿Puede efectivamente convencerse de que todo programa que pasa la verificación de tipo no se cae con un error de tipo durante la ejecución? | ¿Puede efectivamente convencerse de que todo programa que pasa la verificación de tipo no se cae con un error de tipo durante la ejecución? | ||
+ | El testing de esta parte recibe **0.5 pts** | ||
---- | ---- | ||
Line 321: | Line 328: | ||
Un contrato corresponde a un predicado, una función que recibe exactamente un argumento y retorna un booleano. Un ejemplo de programa válido puede ser: | Un contrato corresponde a un predicado, una función que recibe exactamente un argumento y retorna un booleano. Un ejemplo de programa válido puede ser: | ||
<code scheme> | <code scheme> | ||
- | {{define {positive {x : Num}} {< 0 x}} | + | {{define {positive {x : Num}} : Bool {< 0 x}} |
| | ||
{- y x}} | {- y x}} |