|>的含义! (前管爆炸)

时间:2014-04-27 15:17:47

标签: f# piping websharper

在仔细阅读Websharper在线示例时,我遇到过这样的例子:

Div [Attr.Style "padding: 5px;"] -< [
    P [Text "Type a name in the input field below:"]
    Form [
        label "First Name: "
        input
        |>! OnKeyUp (fun _ _ -> update ())
    ]
    P [
        label "Suggestions: "
        hint
    ]
]

我们似乎不是在计算表达式中,出于某种原因,Google对|>!的含义并不是特别容易。

!修饰符在此上下文中有什么影响?它如何改变前进管道的结果?

1 个答案:

答案 0 :(得分:2)

神秘解决了。它不是原生F#运算符;它是一个Websharper运营商。

从源代码(https://github.com/intellifactory/websharper/blob/master/src/stdlib/WebSharper.Main/Pervasives.fs#L105):

/// Implements piping with mutation.
[<Inline "($f($x), $x)">]
let ( |>! ) x f = f x; x