Хотя я немного понимаю о каррировании в математическом смысле, частично , применяя функцию инфикса, была новая концепция, которую я обнаружил после погружения в книгу Learn You a Haskell for Great Good.Частичное применение с функциями Infix
Учитывая эту функцию:
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? Является ли он универсальным для всех функций infix?
Как примечание стороны, это моя первая неделя с Haskell и функциональным программированием, и я до сих пор читаю книгу.
Так что, я не знаю Haskell, но '(1 \' Элем \ '') так же, как '1' элем? – Neil
@Neil: Да, это так. –
Мне нравится думать о '(++)' как о разделе, в котором вы опускаете оба входа. –