F# 中的箭头“proc”符号

bri*_*rns 5 f# haskell arrows f#+

F# 中的箭头是否有“proc”符号的实现?在 Haskell 中,它看起来像这样:

mean2 :: Fractional a => Circuit a a
mean2 = proc value -> do
    t <- total -< value
    n <- total -< 1
    returnA -< t / n
Run Code Online (Sandbox Code Playgroud)

注意proc关键字和-<符号。

理想情况下,这可能会以某种方式使用计算表达式,但我也对其他方法持开放态度。

小智 3

我在 F# 中没有看到任何等效的符号。我认为原因是 F# 并不试图变得纯粹,因此不存在正在proc解决的问题-<

等效的 F# 就是:

let mean2 input = 
    let mutable total = 0.
    let mutable count = 0.
    seq {
        for i in input do
            total <- total + i
            count <- count + 1.
            yield total / count
    }
Run Code Online (Sandbox Code Playgroud)

也许我误解了,该proc关键字提供了比这个简单示例更多的功能。