16-07-2014, 20:48
Hola compañeros! Cómo están?
Estoy preparando paradigma funcional y estoy un poquito perdido ....
En un parcial está el siguiente enunciado:
De cada persona nos interesa saber su edad, su peso y su coeficiente de tonificación. Tenemos algunos ejemplos de socios para realizar las pruebas:
(edad, peso, tonificacion)
pancho = ( 40, 120, 1)
andres = ( 22, 80, 6)
Los ejercicios que se pueden hacer son funciones que dada una persona y una cantidad de minutos,
retorna a la persona luego de realizar el ejercicio. Un ejemplo simple de ejercicio en el cual la persona no
hace nada (y por ende queda igual que al principio sin importar cuánto tiempo lo realice) podría ser:
relax minutos persona = persona
Se pide:
1. Saber si alguien está saludable, lo cual se cumple si no está obeso y tiene una tonificación mayor a 5. Alguien es obeso si pesa más de 100 kilos.
> saludable pancho
False
> saludable andres
True
Lo que veo acá es que no le pasa una tupla como parámetro a la función, sino el nombre de la persona (que a su vez define una tupla). Yo lo definí de la siguiente manera:
saludable:: (Int,Int,Int) -> Bool
saludable (edad,peso,tonificacion) | (peso < 100 && tonificacion > 5) = True
| otherwise = False
Funciona 10 puntos, pero cómo puedo hacer para pasarle el nombre de la persona y no la tupla entera? Cómo debería definir el tipo, o bien, definir la tupla con el nombre pancho y andres?
Si alguien me puede dar una mano, agradecido!!!
Saludos!!
Estoy preparando paradigma funcional y estoy un poquito perdido ....
En un parcial está el siguiente enunciado:
De cada persona nos interesa saber su edad, su peso y su coeficiente de tonificación. Tenemos algunos ejemplos de socios para realizar las pruebas:
(edad, peso, tonificacion)
pancho = ( 40, 120, 1)
andres = ( 22, 80, 6)
Los ejercicios que se pueden hacer son funciones que dada una persona y una cantidad de minutos,
retorna a la persona luego de realizar el ejercicio. Un ejemplo simple de ejercicio en el cual la persona no
hace nada (y por ende queda igual que al principio sin importar cuánto tiempo lo realice) podría ser:
relax minutos persona = persona
Se pide:
1. Saber si alguien está saludable, lo cual se cumple si no está obeso y tiene una tonificación mayor a 5. Alguien es obeso si pesa más de 100 kilos.
> saludable pancho
False
> saludable andres
True
Lo que veo acá es que no le pasa una tupla como parámetro a la función, sino el nombre de la persona (que a su vez define una tupla). Yo lo definí de la siguiente manera:
saludable:: (Int,Int,Int) -> Bool
saludable (edad,peso,tonificacion) | (peso < 100 && tonificacion > 5) = True
| otherwise = False
Funciona 10 puntos, pero cómo puedo hacer para pasarle el nombre de la persona y no la tupla entera? Cómo debería definir el tipo, o bien, definir la tupla con el nombre pancho y andres?
Si alguien me puede dar una mano, agradecido!!!
Saludos!!