Si esto funciona:función Haskell composición pregunta
Prelude Data.Char> map toUpper ("sdfsd" ++ "dfgfdg")
"SDFSDDFGFDG"
Entonces ¿por qué no lo hace?
Prelude Data.Char> map toUpper . (++) "sdfsd" "dfgfdg"
<interactive>:1:14:
Couldn't match expected type `a -> [Char]'
against inferred type `[Char]'
In the second argument of `(.)', namely `(++) "sdfsd" "dfgfdg"'
In the expression: map toUpper . (++) "sdfsd" "dfgfdg"
In the definition of `it': it = map toUpper . (++) "sdfsd" "dfgfdg"
Precedente del operador. La aplicación de función "se une" muy estrechamente; (.) se une muy débilmente. – jrockway
'(.)' Se une muy estrechamente (precedencia = 9), pero la aplicación de función se vincula aún más (precedencia = 10). Simplemente inserte '$' entre las dos cadenas para solucionarlo. '$' tiene muy baja prioridad, ** 0 **. –