UTNianos

Versión completa: mumuki 6.5 esResultadoPar aplicacion parcial y composicion
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
PROBLEMA PEDIDO:
Definir una función esResultadoPar, que aplicándola con número n y otro m, devuelve true si el resultado de elevar n a m es par.
Main> esResultadoPar 2 5
True

Main> esResultadoPar 3 2
False
Nota: Resolverlo utilizando aplicación parcial y composición.
¡Dame una pista!

Te dejamos algunas funciones que pueden ayudarte:
even
^ (sirve para elevar un número)
Y podés tener en cuenta un truquito de las funciones infijas: se pueden aplicar parcialmente de dos formas:
(/2)
<function> -- devuelve una función que divide por dos
-- es decir, espera el primer parámetro de la división

(2/)
<function> -- devuelve una función que divde al dos
-- es decir, espera el segundo parámetro de la división
Resolución:
esResultadoPar n = even.(^n)


Ups, algo no anduvo bien
Resultados de las pruebas:
esResultadoPar elevar 2 a la 5 es par Ver detalles
esResultadoPar elevar 9 a la 2 no es par Ver detalles
esResultadoPar elevar 5 a la 3 no es par



Alguno entiende cual es el error? Lo probe con atom y winGHCI y anda bien...

edit: el error no lo toma al hacer
esResultadoPar m = even . (m ^)
Hola, lo que pasa es que Mumuki necesita que le pases todos los valores que te indica el enunciado, así que tu función debería pasarle dos valores:

esResultadoPar n m = (even.(^m)) n

Saludos!!!
Hola! Manopla_Xeneize , lo que decis esta mal, porque pide que sea usando aplicación parcial
(01-05-2017 15:51)z423 escribió: [ -> ]Hola! Manopla_Xeneize , lo que decis esta mal, porque pide que sea usando aplicación parcial

Hola Bro!!! La parte donde componés con (^m) es aplicación parcial, ya que al n que pasás por parámetro lo elevás a la m y luego comprobás que sea par.

Si no te convence hacelo en mumuki =Dthumbup3
Ponele () al ^
esResultadoPar n = even.((^)n)
URLs de referencia