Si bien entiendo un poco sobre currying en el sentido matemático, parcialmente aplicando una función de infijo fue un nuevo concepto que descubrí después de bucear en el libro Learn You a Haskell for Great Good.Parcial Application with Infix Functions
Dada esta función:
applyTwice :: (a -> a) -> a -> a
applyTwice f x = f (f x)
El autor utiliza de una manera interesante:
ghci> applyTwice (++ [0]) [1]
[1,0,0]
ghci> applyTwice ([0] ++) [1]
[0,0,1]
Aquí puedo ver claramente que la función resultante tenía diferentes parámetros pasaron, lo que no sucedería de forma normal, teniendo en cuenta que es una función cursiva (¿o sí?). Entonces, ¿hay algún tratamiento especial en el seccionamiento infijo por Haskell? ¿Es genérico para todas las funciones de infijo?
Como nota al margen, esta es mi primera semana con Haskell y la programación funcional, y todavía estoy leyendo el libro.
Por lo tanto, no sé Haskell, pero es '(1 \' elem \ ')' 'lo mismo que elem 1'? – Neil
@Neil: Sí, lo es. –
Me gusta pensar en '(++)' como una sección donde omites ambas entradas. –