Cuando pedimos que una función debe definirse, por ejemplo, "como foldr", decimos que la definición no debe ser más que una aplicación de "foldr". Por ejemplo:
sum = foldr (+) 0
Cuando pedimos que una función debe definirse, por ejemplo, "usando foldr", decimos que en la definición tiene que haber aplicación de "foldr", pero que también podemos luego procesar su salida y/o entrada. Por ejemplo:
sumaCero = (0 ==) . foldr (+) 0
sum = foldr (+) 0
Cuando pedimos que una función debe definirse, por ejemplo, "usando foldr", decimos que en la definición tiene que haber aplicación de "foldr", pero que también podemos luego procesar su salida y/o entrada. Por ejemplo:
sumaCero = (0 ==) . foldr (+) 0