【发布时间】:2014-10-18 14:17:35
【问题描述】:
是否有某种形式的内置/术语我不知道有点但它不同的“组合”两个 'a -> unit 函数来产生一个;例如:
let project event =
event |> logDirections
event |> stashDirections
let dispatch (batch:EncodedEventBatch) =
batch.chooseOfUnion () |> Seq.iter project
可能变成:
let project = logDirections FOLLOWEDBY stashDirections
let dispatch (batch:EncodedEventBatch) =
batch.chooseOfUnion () |> Seq.iter project
然后:
let dispatch (batch:EncodedEventBatch) =
batch.chooseOfUnion () |> Seq.iter (logDirections FOLLOWEDBY stashDirections)
我想有人可能会将其与tee 进行比较(正如在FSFFAP's Railway Oriented Programming series 中提到的那样)。
(它需要将相同的 arg 传递给两者,并且我正在寻求按顺序运行它们而没有任何异常处理技巧问题等)
(我知道我可以做到let project fs arg = fs |> Seq.iter (fun f -> f arg),但我想知道是否有内置的东西和/或我不知道的某种形式的组合库)
【问题讨论】:
标签: f# action composition side-effects function-composition