Ну, Это сокращение - это (один из способов) создания бессмысленных функций, и обычно это означает, что вы можете удалить последний параметр функции, если он появляется в конце с обеих сторон выражения.
f :: Int -> Int
g :: Int -> Int -> Int
f s = g 3 s
может быть преобразовано в
f = g 3
Однако в этом случае это немного сложнее, так как на синтаксическом сахаре двухпараметрического оператора (++)
имеетсяrhs типа [a] -> [a] -> [a]
.Тем не менее, вы можете преобразовать это в более стандартную функцию:
haqify :: [Char] -> [Char]
haqify = (++) "Haq! "
Поскольку (++)
является оператором, существуют другие возможности:
haqify = ("Haq! " ++ )
То есть, паренсы конвертируют этов функцию one -параметр, которая применяет "Haq!" ++
к своему аргументу.