Final 19/11/2023 (Paradigmas)
Prolog: Me pidió dar un programa que genere todos los árboles binarios (con constructores Nil y Bin izq der) de n nodos. Dijo que quizás era muy díficil entones me terminó pidiendo uno que genere las rotaciones de una lista. Sea L=[1, 2,3] => [[1,2,3],[2,3,1],[3,1,2]].
Lambda: Me preguntó si podía existir un término tipable M tal que M M esté bien tipado. Me pidió hacer una derivación de tipos para probar que no existía, acá hubiese estado bueno haber practicado ejercicios de tipo parcial. Me pidió explicar subtipado, lo expliqué conceptualmente dando la semántica y creo que hubiese querido una explicación más sintáctica. Me preguntó si el subtipado era reflexivo, antisimétrico, completo. Martelli Montanari: dar la especificación del algoritmo. El MGU es único? Definir qué es un conjunto de ecuaciones de unificación, qué es la unificación. Dar un ejemplo donde hay varias sustituciones que resuelven un problema de unificación.
Haskell: implementar zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] que toma una función que combina un elemento de la primer lista con uno de la segunda lista (posición por posición no producto cartesiano) usando foldr, acá es el truco de que la función de combinación del foldr devuelva una función.
Objetos: Nada
Fue medio jodido el final con muchos momentos de no saber qué responder pero al final siento que fue copado con la nota.