什么和&在哈斯克尔意味着什么?

时间:2018-01-14 18:50:23

标签: haskell

我试图了解plotlyhs中的示例:

plotly "div6"
    [points (aes & x .~ sepalLength 
                 & y .~ sepalWidth
                 & color ?~ (fromEnum . irisClass)) iris]
    & layout . margin ?~ thinMargins
    & layout . height ?~ 300

但我不知道&的含义。此外,我似乎无法谷歌它。

我也不知道.~?~是什么意思,但我想我会问其他问题。

1 个答案:

答案 0 :(得分:5)

您很可能使用reverse function application operator,定义为

(&) :: a -> (a -> b) -> b
a & f = f a

它只是($)的翻转版本,经常用于GUI库和其他适用于"应用"现有值的特征和修饰符。

textbox & onClick foo & enabled

看起来更好,而且通常比

更直接
enabled . onClick foo $ textbox
在某种意义上,

向后读。要知道这条线是什么,你必须从右边开始。