rye*_*guy 2 syntax haskell
> map (++ "!") ["a", "b", "c"] ["a!","b!","c!"] > (++) "!" "a" "!a"
这两行对我来说没有意义.使用++时map,似乎第一个参数被附加到第二个参数,但在第二个列表中,它是另一种方式.Haskell如何推理map函数中的行为?
++
map
C. *_*ann 9
这(++ "!")是一个称为操作符部分的特殊语法.它部分应用了中缀运算符的第二个参数,而(++) "!"像普通的部分应用程序一样工作并且正在应用第一个参数.
(++ "!")
(++) "!"
使用带有反引号的中缀式常规函数也可以做同样的事情:(`map` [1..3])相当于(\f -> map f [1..3]).
(`map` [1..3])
(\f -> map f [1..3])
这看起来很奇怪,因为它是,这是一个特殊情况的额外功能,因为它是非常有用的.
归档时间:
15 年,4 月 前
查看次数:
186 次
最近记录:
14 年,10 月 前