我目前正在开始使用 Haskell(阅读 Learn Yourself a Haskell),并且遇到了类似于以下内容的行:
map (++"!") ["a", "b"] -- ["a!", "b!"]
map ("!"++) ["a", "b"] -- ["!a", "!b"]
为什么这是可能的,或者它是如何工作的?我无法对其他非交换操作做同样的事情,比如除法:
map (3/) [1..3] -- [3.0,1.5,1.0]
map ((/)3) [1..3] -- [3.0,1.5,1.0]
map (3(/)) [1..3] -- error
我觉得我在这里遗漏了一些东西,但实施map
并没有给我任何提示。