UTNianos

Versión completa: [Aporte][Paradigmas de Programación] Parcial funcional Scarcella
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Les dejo el enunciado del parcial que se tomó para el paradigma funcional.

[attachment=8770]
[attachment=8771]

Algunas resoluciones que me acuerdo (chequeadas que funcionan menos la 4a):

Spoiler: Mostrar

-- 1a
esDeCalidad unMaterial = valor unMaterial > 20

valor (_,v) = v

-- 1b
disponibles unMaterial unaAldea = (length . filter (materialBuscado unMaterial)) (materialesAldea unaAldea)

materialBuscado unMaterial (n,_) = unMaterial == n

materialesAldea (_,m,_) = m

-- 1c
valorTotal unaAldea = valorTotalMaterialesDisponibles unaAldea + valorTotalMaterialesEdificios unaAldea

valorTotalMaterialesDisponibles unaAldea = (sum . map valor) (materialesAldea unaAldea)

valorTotalMaterialesEdificios unaAldea = (sum . map valor) (aplanar (materialesEdificios unaAldea))

aplanar lista = foldl (++) [] lista

materialesEdificios (_,_,e) = map snd e

-- 2a
tenerGnomito (p,m,e) = (p+1,m,e)

-- 2b
lustrarMaderas (p,materiales,e) = (p,map esMadera materiales,e)

esMadera (n,v) | (take 6 n) == "Madera" = (n,v+5)
| otherwise = (n,v)

-- 2c
recolectar unMaterial cantidad (p,materiales,e) = (p, [unMaterial | n <- [0..(cantidad-1)]] ++ materiales,e)

-- 4a - Este no funciona, pero la idea es algo asi masomenos
realizarLasQueCumplan tareas criterios unaAldea = foldl (.) id (tareasValidas tareas criterios) unaAldea

tareasValidas tareas criterios unaAldea = filter (cumpleCriterio (head criterios) unaAldea) tareas

cumpleCriterio criterios unaAldea tarea = criterios (tarea unaAldea)

poblacion (p,m,e) = p


Gan, tenés la resolución?, yo lo desaprobé voy a ver si pido que me lo entreguén la corrección así veo en que me equivoque, la semana que viene ya esta el recuperatorio =S
romysory2010 fijate que abajo dice "Algunas resoluciones que me acuerdo (chequeadas que funcionan menos la 4a):
"
Gracias Caro!
URLs de referencia