Частичное применение с инфиксными функциями

Хотя я немного разбираюсь в каррировании в математическом смысле, частично применение инфиксной функции было новой концепцией, которую я обнаружил после погружения в книгуLearn You a Haskell for Great Good.

Учитывая эту функцию:

applyTwice :: (a -> a) -> a -> a
applyTwice f x = f (f x)

Автор использует ее интересным образом:

ghci> applyTwice (++ [0]) [1]  
[1,0,0]
ghci> applyTwice ([0] ++) [1]
[0,0,1]

Здесь я ясно вижу, что результирующая функция имела разные параметры прошло, что не произошло бы обычными средствами, учитывая, что это карри функция (будет ли это?). Итак, существует ли какая-либо специальная обработка инфиксного секционирования с помощью Хаскелл? Является ли он общим для всех инфиксных функций?


Кстати, это моя первая неделя с Haskell и функциональным программированием. а я до сих пор читаю книгу.

12
задан Will Ness 9 September 2014 в 11:36
поделиться