Differences

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

Link to this comparison view

Next revision
Previous revision
teaching:cc4101:tareas:2023-1:tarea1 [2023/04/06 03:31] – created tvallejosteaching:cc4101:tareas:2023-1:tarea1 [2023/04/24 13:07] (current) – [Parte 3. Contratos en funciones de primer orden (1.5 ptos.)] tvallejos
Line 17: Line 17:
  
  
-Deben entregar via U-cursos **un archivo .zip** que contenga los siguientes archivos: ''p1.rkt'', ''p1-test.rkt'', ''p2.rkt'', ''p2-test.rkt'', ''p3.rkt'' y ''p3-test.rkt'', archivos que deberán contener las funcionalidades solicitadas en cada pregunta y los tests respectivos. Puede usar como base los archivos que se encuentra aquí.+Deben entregar via U-cursos **un archivo .zip** que contenga los siguientes archivos: ''{{ :teaching:cc4101:tareas:2023-1:p1.rkt |p1.rkt}}'', ''{{ :teaching:cc4101:tareas:2023-1:p1-test.rkt |p1-test.rkt}}'', ''{{ :teaching:cc4101:tareas:2023-1:p2.rkt |p2.rkt}}'', ''{{ :teaching:cc4101:tareas:2023-1:p2-test.rkt |p2-test.rkt}}'', ''{{ :teaching:cc4101:tareas:2023-1:p3.rkt |p3.rkt}}'' y ''{{ :teaching:cc4101:tareas:2023-1:p3-test.rkt |p3-test.rkt}}'', archivos que deberán contener las funcionalidades solicitadas en cada pregunta y los tests respectivos. También puede serle útil {{ :teaching:cc4101:tareas:2023-1:env.rkt |env.rkt}}. Puede usar como base los archivos que se encuentran aquí  
 +(**descargar un {{teaching:cc4101:tareas:2023-1:t1.zip|.zip}} con los archivos iniciales**).
  
  
Line 44: Line 45:
            | {< <expr> <expr>}            | {< <expr> <expr>}
            | {= <expr> <expr>}            | {= <expr> <expr>}
-           | {! <expr> <expr>}+           | {! <expr>}
            | {&& <expr> <expr>}            | {&& <expr> <expr>}
            | {|| <expr> <expr>}            | {|| <expr> <expr>}
Line 91: Line 92:
   * Al implementar el lenguaje, asegúrese de hacerlo [[https://users.dcc.uchile.cl/~etanter/play-interps/Functions_with_Environments.html|utilizando ambientes]], y no una función de substitución.   * Al implementar el lenguaje, asegúrese de hacerlo [[https://users.dcc.uchile.cl/~etanter/play-interps/Functions_with_Environments.html|utilizando ambientes]], y no una función de substitución.
   * La semántica debe considerar alcance léxico, no dinámico.   * La semántica debe considerar alcance léxico, no dinámico.
-  * Verifique en tiempo de ejecución que los argumentos de los operadores numéricos sean numéricos. Y que los argumentos de los operadores de pares sean pares (En la parse 2 se alineará la verificación dinámica con la verificación estática).+  * Verifique en tiempo de ejecución que los argumentos de los operadores numéricos sean numéricos. 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.
   * La condición de una expresión ''if'' deben ser un booleano.   * La condición de una expresión ''if'' deben ser un booleano.
Line 235: Line 236:
  
 <code scheme> <code scheme>
-{{define {pair-non-zero? {p : {Pair Num Num}}} {and {} {}}}+{{define {pair-non-zero? {p : {Pair Num Num}}} {&& {= 0 {fst p}} {= 0 {snd p}}}}
  {define {pair-div {p : {Pair Num Num} @ pair-non-zero?}} {/ {fst x} {snd x}}}  {define {pair-div {p : {Pair Num Num} @ pair-non-zero?}} {/ {fst x} {snd x}}}
  {+ {pair-div {cons 30 5}} {pair-div {cons 60 0}}}  {+ {pair-div {cons 30 5}} {pair-div {cons 60 0}}}