Final 22/04/2008 (Paradigmas)

De Cuba-Wiki
Saltar a: navegación, buscar
Back.png Volver a la página de la materia

Ejercicio 1[editar]

Escribir las reglas de semántica small-step y tipado para Lambda Cálculo con excepciones (igual al escrito en el final del 27/12/07)

Respuesta

Ejercicio 2[editar]

Escribir en prolog el predicado que suma los nodos de un árbol binario

Respuesta[editar]

sumanodos(nil, 0).
sumanodos(bin(I, V, D), N) :-
    sumanodos(I, SI),
    sumanodos(D, SD),
    N is SI+SD+V.

No queda claro en el enunciado si la suma puede estar instanciada o no, este es el caso facil, si se quiere hacer una version reversible sería mucho más complicado.

Ejercicio 3[editar]

Explicar el concepto de Currificación y dar un ejemplo

Respuesta

Ejercicio 4[editar]

Item A[editar]

Escribir la función map para listas

mapl :: (a->b)->[a]->[b]
mapl _ [] = []
mapl f (x:xs) = (f x):(mapl f xs)

O tal vez con foldr

mapf :: (a->b)->[a]->[b]
mapf f = foldr ((:).f) []

Respuesta[editar]

Item B[editar]

Tipar "map map"

Respuesta[editar]

Ver el Final del 14 de Octubre de 2008.