部分应用带有映射的中缀运算符



>我有以下函数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
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]

我希望这能更清楚地说明这一点。

相关内容

  • 没有找到相关文章

最新更新