UTNianos

Versión completa: Ayuda TP FUNCIONAL
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola que tal? Estoy teniendo problemas para arrancar con el TP de funcional y quería ver si alguno me podría dar una mano

Mi modelado de información es el siguiente:


data Cliente = Cliente {
nombre :: String,
resistencia :: Int,
amigos :: [Cliente],
bebidas :: [Bebida]
} deriving (Show)

type Bebida = Cliente -> Cliente

rodri = Cliente {
nombre ="Rodri",
resistencia = 55,
amigos = [],
bebidas = [tintico]
}

marcos = Cliente{
nombre = "Marcos",
resistencia = 40,
amigos = [rodri],
bebidas = [klusener "guinda"]
}

cristian = Cliente {
nombre = "Cristian",
resistencia = 2,
amigos = [],
bebidas = [grogXD, jarraLoca]
}

Los tipos de Bebida son los siguientes:

grogXD :: Bebida
grogXD cliente = cliente {resistencia = 0}

jarraLoca :: Bebida
jarraLoca cliente = cliente {resistencia = resistencia cliente - 10, amigos = map (cambiarResitenciaCliente) (amigos cliente) }
cambiarResitenciaCliente cliente = cliente { resistencia = resistencia cliente - 10}

klusener :: String -> Bebida
klusener gusto cliente = cliente { resistencia = resistencia cliente - length gusto }

tintico :: Bebida
tintico cliente = cliente { resistencia = resistencia cliente + length (amigos cliente) *5}


Punto a) Hacer que un cliente pueda tomar una bebida. Además del efecto que le causa la bebida en sí, se debe registrar esa bebida en su historial de bebidas tomadas.

Punto b) Desarrollar la función tomarTragos, la cual recibe a un cliente y una lista de tragos y retorna al cliente luego de tomarlos todos los tragos.


Yo estoy tratando de hacer la función por ejemplo para el primer punto tomarBebida :: Bebida y luego no entiendo como pasar por parametro la función completa que recibiria un (grogXD ana por ejemplo) y devolveria un cliente con el cambio realizado

Desde ya, gracias!
Buenas,
Este tipo de consultas te conviene preguntárselas al tutor de tu grupo o elegir a alguna de estas personas y mandarle un mail.

Por acá no sabés quién te puede llegar responder cualquier cosa o darte la respuesta sin dejarte razonar y aprender el tema. Por otro lado sea quién sea que te conteste dudo que sea alguien que luego te vaya a corregir, a menos que de casualidad te responda un ayudante o profe que podrías haber contactado en el listado que te pasé recién. =) Más aún en una materia que no solo se trata de que funcione lo que hagas sino de cómo.

Bueno, eso,
Saludos
URLs de referencia