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
关键字提供了比这个简单示例更多的功能。