阅读John Hughes的Generalising monads to arrows,我知道箭头可以用来表示和组合流处理器与单个输入和单个输出。也可以使用对或使用ArrowChoice
表示多个输入和输出。
但是,使用一对意味着输入是成对的流,这不足以表示达到不同速率的处理流。 ArrowChoice
能够表达,但它将两个流“多路复用”在一个流中。
我正在寻找一种将流与多个输入和多个输出组合在一起的方法,同时仍然能够区分流被多路复用的情况和单独流的情况。
这可能吗?
答案 0 :(得分:0)
也许您可以使用定义为的These
类型(from here):
data These a b = This a | That b | These a b
通过这种方式,您可以表示您正在接收一个流,或另一个流,或两者都有。