Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
teaching:cc4101:tareas:2025-1:tarea3 [2025/06/18 19:23] – [Codificando funciones anónimas de primera clase con Objetos (1 pto)] dibanezteaching:cc4101:tareas:2025-1:tarea3 [2025/06/19 00:39] (current) – [Parte 2 (extra): Codificando funciones anónimas de primera clase con Objetos (1 pto de bonus)] dibanez
Line 28: Line 28:
 (*) nada de ''(lambda (msg . args) ...)'' en su código! (*) nada de ''(lambda (msg . args) ...)'' en su código!
 </note> </note>
-===== Clases y objetos (5 ptos.) =====+===== Parte 1. Clases y objetos =====
 A continuación se presenta la sintaxis concreta del lenguaje extendido (se omiten las expresiones del lenguaje base):  A continuación se presenta la sintaxis concreta del lenguaje extendido (se omiten las expresiones del lenguaje base): 
 <code scheme> <code scheme>
Line 282: Line 282:
 </code> </code>
  
-===== Parte Extra: Codificando funciones anónimas de primera clase con Objetos (1 pto de bonus) =====+===== Parte 2: Codificando funciones anónimas de primera clase con Objetos (_ pts) =====
 Ahora incorporaremos funciones anónimas de primera clase (típicamente conocidas como "lambdas") a nuestro lenguaje. A diferencia de lo visto durante el curso, en esta ocasión no daremos una interpretación directa de las funciones. Usted debe idear una manera de usar la implementación de clases y objetos hecha en la parte anterior para codificar las lambdas. Esto significa que **no puede modificar** el AST y el intérprete para soportar funciones y aplicaciones de funciones. Las modificaciones que debe hacer son en el **parser**. En otras palabras, las funciones y aplicaciones serán sólo azúcar sintáctica. Ahora incorporaremos funciones anónimas de primera clase (típicamente conocidas como "lambdas") a nuestro lenguaje. A diferencia de lo visto durante el curso, en esta ocasión no daremos una interpretación directa de las funciones. Usted debe idear una manera de usar la implementación de clases y objetos hecha en la parte anterior para codificar las lambdas. Esto significa que **no puede modificar** el AST y el intérprete para soportar funciones y aplicaciones de funciones. Las modificaciones que debe hacer son en el **parser**. En otras palabras, las funciones y aplicaciones serán sólo azúcar sintáctica.