Buenas realizando el siguiente ejercicio nos surgio una duda:
Complete la siguiente definición de any:
any :: (a -> Bool) -> [a] -> Bool any p = <?> . filter pCon la respuesta correcta < ?> == "not . null" podemos cargar un modulo, y si ejecutamos:
"any (==1) [1,2,3]" y obtenemos el resultado esperado.
Sin embargo si intentamos correrlo a mano: "not . null . filter (==1) [1,2,3]" nos da error de tipo y tenemos que forzar que resuelva primero el filter para que corra "not . null $ filter (==1) [1,2,3]". No entendemos por que no exige lo mismo en ambos casos.