Diferencia entre revisiones de «Final 13/12/2016 (Paradigmas)»
(Final 13/12/16) |
Sin resumen de edición |
||
Línea 1: | Línea 1: | ||
Era escrito (5 personas dando el final). Era a libro abierto y constaba de 7 puntos. Pedida que las respuestas sean lo más cortas y concretas posibles (ej, media carialla). Llegabas medio justo con el tiempo. | Era escrito (5 personas dando el final). Era a libro abierto y constaba de 7 puntos. Pedida que las respuestas sean lo más cortas y concretas posibles (ej, media carialla). Llegabas medio justo con el tiempo. | ||
1. Dadas: | 1. Dadas: | ||
l = 1:l | l = 1:l | ||
Línea 11: | Línea 11: | ||
explicar cual es el resultado de evaluar f l y g l | explicar cual es el resultado de evaluar f l y g l | ||
2. Es correcto cambiar la regla de semántica del fix por: fix V -> V (fix V) ? | 2. Es correcto cambiar la regla de semántica del fix por: fix V -> V (fix V) ? | ||
3. Extendemos el calculo lambda con el operador suma (+), que vendría a ser como un Either en Haskell. Nos dan las reglas de tipado: | 3. Extendemos el calculo lambda con el operador suma (+), que vendría a ser como un Either en Haskell. Nos dan las reglas de tipado: | ||
\-----------------------------------\ | \-----------------------------------\ | ||
Línea 35: | Línea 35: | ||
Mostrar que problemas trae a las propiedades del sistema de tipado. | Mostrar que problemas trae a las propiedades del sistema de tipado. | ||
4. Mostrar con un ejemplo concreto que pasa si le quitamos a la regla de inferencia del Abs la parte de: Gamma' = Gamma - {x} | 4. Mostrar con un ejemplo concreto que pasa si le quitamos a la regla de inferencia del Abs la parte de: Gamma' = Gamma - {x} | ||
5. Dado el programa en prolog: | 5. Dado el programa en prolog: | ||
a(1). | a(1). | ||
Línea 52: | Línea 52: | ||
ii. p(X,Y) :- not(member(Z,X)), a(Z), P([Z|X], Y). | ii. p(X,Y) :- not(member(Z,X)), a(Z), P([Z|X], Y). | ||
6. Verdadero o Falso justificando: | 6. Verdadero o Falso justificando: | ||
a. Es cierto que las clausulas {P(x,f(y)}, {P(y,y} no se pueden refutar ya que no unifican ? | a. Es cierto que las clausulas {P(x,f(y)}, {P(y,y} no se pueden refutar ya que no unifican ? | ||
Línea 60: | Línea 60: | ||
2. Si existe refutación para \lnot G, entonces F es válida | 2. Si existe refutación para \lnot G, entonces F es válida | ||
7. Eran unas clases en Smalltalk, había que hacer 2 seguimientos. | 7. Eran unas clases en Smalltalk, había que hacer 2 seguimientos. |
Revisión del 16:59 27 feb 2017
Era escrito (5 personas dando el final). Era a libro abierto y constaba de 7 puntos. Pedida que las respuestas sean lo más cortas y concretas posibles (ej, media carialla). Llegabas medio justo con el tiempo.
1. Dadas:
l = 1:l
f = foldr (\x y -> 1) 0
g = foldl (\x y -> 1) 0
explicar cual es el resultado de evaluar f l y g l
2. Es correcto cambiar la regla de semántica del fix por: fix V -> V (fix V) ?
3. Extendemos el calculo lambda con el operador suma (+), que vendría a ser como un Either en Haskell. Nos dan las reglas de tipado:
\-----------------------------------\
Gamma |- in1 : sigma -> sigma + tau
\-----------------------------------\
Gamma |- in2 : tau -> sigma + tau
Gamma |- M : sigma + tau -> rho, Gamma |- N : sigma + tau -> rho
\----------------------------------------------------------------\
Gamma |- case in1 => M or case in2 => N : sigma + tau -> rho
Mostrar que problemas trae a las propiedades del sistema de tipado.
4. Mostrar con un ejemplo concreto que pasa si le quitamos a la regla de inferencia del Abs la parte de: Gamma' = Gamma - {x}
5. Dado el programa en prolog:
a(1).
a(2).
p(X,Y) :- a(Z), not(member(Z,X)), P([Z|X], Y).
p(X,X).
a. Dar la cantidad de soluciones de la consulta P([], X). (usando el arbol SLD) b. Que pasa con la cantidad de soluciones si cambiamos la 3er regla por:
i. p(X,Y) :- a(Z), not(member(Z,X)), !, P([Z|X], Y). ii. p(X,Y) :- not(member(Z,X)), a(Z), P([Z|X], Y).
6. Verdadero o Falso justificando:
a. Es cierto que las clausulas {P(x,f(y)}, {P(y,y} no se pueden refutar ya que no unifican ? b. Te daban dos formulas y decian que una era la Skolem de la otra. c. Dada G la Skolem de F.
1. Si no existe refutación para G, entonces F es válida 2. Si existe refutación para \lnot G, entonces F es válida
7. Eran unas clases en Smalltalk, había que hacer 2 seguimientos.