Buenas! Tengo tres preguntas respecto a este ejercicio.
La solución que me funciono es la siguiente:
getPares3 :: [Int] -> Int
getPares3 xs = length $ filter (==0) $ map (\x -> x `mod` 2) xs
Pero luego trate de cambiar algunas cosas y no entiendo por que me da error
1)
getPares3 xs = length $ filter (==0) $ map (\x -> x `mod` 2) xs
No entiendo por que el $ en la linea: filter (==0) $ map (\x -> x `mod` 2) xs va ahi.
O sea pienso que es porque esta diciendo que se aplique la función (==0) sobre la lista resultado del map pero de entrada pensé que se debería aplicar asi: filter $ (==0) map (\x -> x `mod` 2) xs
ya que la idea era que aplicara la función filter a esos dos argumentos.
2)
getPares3 = length $ filter (==0) $ map (\x -> x `mod` 2)
Entendia que el xs lo podia sacar ya que quedaba implicito pero no entiendo por que no puedo hacerlo en esta definicion.
3)
La composición de funcion (.) y el $ no se pueden usar juntos en la misma linea de definicion no?
Gracias!