为什么在将mod函数传递给map时使用严重重音?

Ren*_*ani 6 haskell

我正在学习Haskell,但我没有找到答案.

为什么使用严重重音将mod函数传递给映射,就像在示例中一样?我看到了其他不需要的功能.

map (`mod` 3) [1..6]   -- result is [1,2,0,1,2,0]
Run Code Online (Sandbox Code Playgroud)

如果我没有严肃的口音,结果就完全不同了.

map (mod 3) [1..6]    -- result is [0,1,0,3,3,3]
Run Code Online (Sandbox Code Playgroud)

Ale*_*ira 11

重音"使功能表现得像操作员".例如:

mod a b == a `mod` b
Run Code Online (Sandbox Code Playgroud)

所以

(mod 3) == mod 3 ?
Run Code Online (Sandbox Code Playgroud)

(`mod` 3) == mod ? 3
Run Code Online (Sandbox Code Playgroud)

  • 只是要添加,括号使操作符就像一个函数,即`1 + 2 ==(+)1 2`,偶尔会出现像'foldr`这样的函数. (4认同)
  • @Cubic在这种情况下,`mod`通常在说话时用作中缀运算符,所以在这里我肯定会使用反引号. (4认同)