Seguimos buscando a Arshak. Ayudanos compartiendo!
Encuesta no oficial de docentes
Resultados de la encuesta no oficial de docentes
Probaste el SIGA Helper?

Donar $100 Donar $200 Donar $500 Donar mensualmente


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
[PdeP] Consulta Funcional
Autor Mensaje
bareel Sin conexión
Profesor del Modulo A
Moving Forward.
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 225
Agradecimientos dados: 49
Agradecimientos: 9 en 7 posts
Registro en: Oct 2011
Mensaje: #1
[PdeP] Consulta Funcional Parciales Paradigmas de Programación
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!!
16-07-2014 20:48
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
cuchodelosdecadentes Sin conexión
Campeon del cubo Rubik
soooomos los piratas ...
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 195
Agradecimientos dados: 88
Agradecimientos: 6 en 6 posts
Registro en: Dec 2011
Mensaje: #2
RE: [PdeP] Consulta Funcional
fijate si no podes usar data o type. alguna de las dos te tiene que servir

ej: data Persona = Persona .......

y despues haces

let pancho = Persona....
let andres = Persona...

y al final

> saludable pancho

creo que es algo asi, todavia tengo que repasar funcional

espero no haber tirado fruta.
16-07-2014 20:57
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Diego Pedro Sin conexión
Secretario de la SAE
que calor no?
******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 631
Agradecimientos dados: 23
Agradecimientos: 105 en 48 posts
Registro en: May 2011
Mensaje: #3
RE: [PdeP] Consulta Funcional
Está bien como lo haces, digamos "pancho" o "andres" son funciones constantes (sí en funcional todo es una función genius), y la idea es que justamente vos lo hagas así, pasándole la tupla de esa forma, para comprobar que sabes el concepto de pattern matching. Porque también existe la posibilidad de definir funciones que te devuelvan la edad, ponele esta sería otra forma (HORRIBLE, aclaro por las dudas) de hacerlo:

obtenerPeso(_,p,_) = p
obtenerTonif(_,_,t) = t

saludable persona = (((<100).obtenerPeso) persona) && (((>5).obtenerTonif) persona)

Pero, de esta forma ni ves lo que es el concepto de pattern matching. Eso en cuanto a tu consulta, ahora una pequeña corrección; siempre que iguales algo a True o False, pensá que existe otra forma de hacerlo porque igual a true una claúsula que ya de por sí te devuelve True o False, es totalmente redundante. Te quedaría así:

saludable (edad,peso,tonificacion) = (peso < 100) && (tonificacion > 5)
16-07-2014 23:01
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
bareel Sin conexión
Profesor del Modulo A
Moving Forward.
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 225
Agradecimientos dados: 49
Agradecimientos: 9 en 7 posts
Registro en: Oct 2011
Mensaje: #4
RE: [PdeP] Consulta Funcional
Gracias.
25-07-2014 20:21
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)