【发布时间】:2019-10-21 10:19:30
【问题描述】:
我想创建一个流,从传入的元素中创建一个新的源(它将是一个持久性查询),然后将结果展平。像这个简化的例子:
var z = Source.Single(1).ConcatMany(i => Source.Single(i));
此代码按预期编译和工作。我的问题是,当我将它翻译成 F# 时:
let z = Source.Single(1).ConcatMany(fun i -> Source.Single(i))
我收到一个错误提示
This expression was expected to have type
'IGraph<SourceShape<'a>,Akka.NotUsed>'
but here has type
'Source<int,Akka.NotUsed>'
我认为其原因是 F# 处理协/逆变的方式与 C# 不同,并且不能简单地转换这些泛型特化 (https://github.com/fsharp/fslang-suggestions/issues/162),但我无法找到在 int 和SourceShape<int>。是否可以将此示例转换为 F#?
【问题讨论】:
标签: f# akka.net akka.net-streams