将部分infix运算符与map一起应用

时间:2018-06-22 13:13:38

标签: haskell infix-notation infix-operator

我有以下功能g

g :: Int -> Int -> Int 
g x y = x + y * y

我通过以下三种方式使用g,但不太了解它们各自的作用。

map (g 10)  [1,2,3,4,5] -- 1

map (10 ‘g‘) [1,2,3,4,5] -- 2

map (‘g‘ 10) [1,2,3,4,5] -- 3

1 个答案:

答案 0 :(得分:1)

x `g` y

haskell.org上定义为

x `g` y = g x y

这导致以下结果

-- 1
map (g 10) [1,2,3,4,5] ==
map (\x -> g 10 x) [1,2,3,4,5]

-- 2
map (10 `g`) [1,2,3,4,5] ==
map (\x -> g 10 x) [1,2,3,4,5]

-- 3
map (`g` 10) [1,2,3,4,5] ==
map (\x -> g x 10) [1,2,3,4,5]

我希望这可以使它更加清楚。