私は現在、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
はヒントが得られません。