我想做的是有一个函数,我可以重复将转换函数传递给并接收组合转换,转换函数的形式为'a ->'b
即,而不是像这样组成一个固定的工作流程:
let input = async{ let! transform1 = transformAB input
let! transform2 = transformBC transform1
let! transform3 = transformCD transform2
return! transform3 }
我希望能够做到这一点:
let combined = buildTransform(transform1).Next(transform2).Next(transform3)
所以我可以简单地调用组合输入来获取工作流的结果。
如果没有达到值限制,或者编译器将所有转换器限制为相同类型,这是否可行?