UTNianos

Versión completa: [Pedido] Final Paradigmas 3/08/13
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Buenas, queria saber si alguien rindio el final hoy, y se acuerda un poco que tomaron!

Gracias!
Hola!
Adjunto el enunciado.
Saludos!
Buenisimo, muchas gracias!
buenas , alguno pudo resolver algo para comparar , me anote para el 10/8 pero estoy medio jugado jeje ya que hace rato la curse.
nose si esta todo bien o mal , pongo lo que creo que sè


punto 1

1)dominio e imagen = [ a ] -> [ a ] ---> [a] no estoy seguro. La funcion trae los 2 primeros elementos de cada lista y lo devuelve a una lista nueva en forma de tupla de aridad 2 siempre y cuando halla valores en cada lista , si en alguna de cada lista no hubiera mas valores , no retorna nada.

2) no es para nada expresiva ya que por ejemplo el nombre de la funcion (func) no nos dice que haria , podemos ponerle un nombre mas lindo como Funcion2PrimerosDeCadaLista , dando mas detalle al que lo lee. Dicha funcion es recursiva. ( quizas me falte mas chamu, si alguno puede decir algo mas binevenido sea)

3) es mucho mas declarativa que la original ya que por ejemplo se usa función de orden superior (filter) dando mayor abstraccion a la funcion , ya que se centra en el que y no en el como. ( quizás aca tbm falte mas chamu)

4) a) haskell trabaja con la evaluación diferida (lazy evoluation) , es por eso que se puede trabajar con listas infinitas sin problemas ya que va evaluando aquello que realmente se necesita.

B) no se podría usar esto en smalltalk ya que este lenguaje usa lo que se llama evaluación ansiosa y al usar listas infinitas caería en un loop infinito
Estoy de acuerdo en todos los puntos menos en el 1)
Dominio : (x -> y -> Bool) -> [x] -> [y]
Imagen: [(x,y)]
ah claro el dominio es una función y 2 listas. Estoy con el punto de logico , pudiste resolverlo o arrancarlo?
punto 3

ejercicio 2

nueva implementacion ( aclaro nose si esta del todo bien)

#persona

juegos (coleccion)
consola (vi)
edadPersona(vi)


metodo
puedejugar:


tengo 3 clases que surgen de la coleccion , serian estas.. aclaracion vi = variable de instancia

#pelota #juegoMesa # videojuegos
rangoInicial(vi) consolas (coleccion de consolas)
rangoFinal (vi) edadMinimaParaJugar(vi)
metodo metodo metodo
PuedoJugarJuego PueddeJugarJuego puedeJugarJuego


luego..

#persona
puedejugar : un juego
un juego PuedeJugarJuego


#pelota

PuedeJugarJuego
^(persona edad >1)

#juegoMesa
PuedeJugarJuego
^(persona edad between: self rango inicial and : self rango final)

#videoJuegos
PuedeJugarJuego
^((self consolas includes : persona consola) & ( persona edad > self edadMinima & persona edad < 80 ))


bueno hablaria de polimorfismo , delegacion de responsabilidades en lo que sugiere el ejercicio

alguien me puede decir si esto esta bien?

reescribo lo que habia salido mal

#pelota

metodo
puedeJugarJuego


#juegoMesa
rangoInicial(vi)
rangoFinal (vi)

metodo
PueddeJugarJuego


# videojuegos
consolas (coleccion de consolas)
edadMinimaParaJugar(vi)

metodo
PuedoJugarJuego
puede ser que te haya faltado mandarle la persona como parametro?, es decir..

#persona
puedejugar : un juego
unJuego PuedeJugarJuego:self

PuedeJugarJuego:unaPersona
^(unaPersona edad >1).

y asi en las otras subclases videojuego y juego de mesa
URLs de referencia