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
[Funcional] Definir el tipo de una función
Autor Mensaje
Crowley Sin conexión
Empleado de Fotocopiadora
Sin estado :(
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 25
Agradecimientos dados: 0
Agradecimientos: 1 en 1 posts
Registro en: Jun 2012
Mensaje: #1
[Funcional] Definir el tipo de una función Dudas y recomendaciones Paradigmas de Programación
Buenasss... consultirijilla??

Veo que en casi todos los finales de pdep está el punto en el que te preguntan de qué tipo es una función, y por mas que veo los resueltos no entiendo cómo se obtienen... seguro es una pavada pero no se, creo que nunca me lo enseñó doña Fleischman.

Alguien que me pueda explicar?

Por ejemplo, si tengo:
cumple f [_] = True
cumple f (x:y:xs) = f x y && cumple f (y:xs)

Como obtendria el tipo de esa funcion?
21-09-2014 16:03
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
sentey Sin conexión
Presidente del CEIT
fressi renunciessi abandonessi
********

Análisis de Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.579
Agradecimientos dados: 136
Agradecimientos: 207 en 144 posts
Registro en: Aug 2010
Mensaje: #2
RE: [Funcional] Definir el tipo de una función
La forma facil:

:t cumple


La forma dificil, y que vas a tener que hacer en el parcial:

cumple :: (funcion f) -> (lista de algo) -> Bool

Ahora hallemos lo que falta.

Para f:
Viendo la segunda linea, vemos que f recibe x e y, y luego es usado con un &&, asi que tiene que devolver un bool.
Entonces f :: (x) -> (y) -> Bool
x e y son elementos de una lista (los usa varias veces como cabeza en la segunda linea), pero no dice que mierda son, asi que f :: a -> a -> Bool

Y la lista es de "a" tambien

Entonces te queda


cumple :: (a -> a -> Bool) -> [a] -> Bool


sentey escribió:Voy a cambiar esta firma el día que Me$si gane 2 mundiales
21-09-2014 20:22
Envíale un email 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)