Final 28/04/2022 (Paradigmas)

De Cuba-Wiki

Funcional

  • Definir map usando foldl y foldr
  • ¿Qué pasa con foldl y foldr con listas infinitas?

Lambda Cálculo

  • Dadas las reglas de LC con registros, ¿por qué pedimos que para aplicar una proyección todo los campos de los registros sean valores y no proyectamos directametnte?
  • Si sacamos la regla siguiente para arreglarlo, ¿ahora anda o sigue roto?
 M -> M’
 -------------
 M.l -> M’l
  • Hablamos de la propiedad de progreso

Lógico

  • Diferencias entre la regla de unificación para proposicional vs. lógica de primer orden.
  • ¿Por qué si las reglas para LPO no son completas, en Prolog se pueden usar igual y anda?
  • Cómo funciona el not para árboles de resolución finitos e infinitos.
  • Vimos unos casitos de unificación, y discutimos si se podía unificar en un paso a la cláusula {}:
 * {p(X,a)}, {~p(b,X)}
 * {p(X), q(a)}, {~p(b), ~q(Y)}

Objetos

  • Diferencias entre semántica operacional entre LC y SC (o sea preguntaba por big step y small step).
  • ¿Cómo se evidencia "que un programa se colgó" en la semántica operacional de lambda cálculo? ¿Y en sigma cálculo?