流处理器具有多个输入和输出作为箭头

时间:2017-10-09 04:09:15

标签: functional-programming arrows

阅读John Hughes的Generalising monads to arrows,我知道箭头可以用来表示和组合流处理器与单个输入和单个输出。也可以使用对或使用ArrowChoice表示多个输入和输出。

但是,使用一对意味着输入是成对的流,这不足以表示达到不同速率的处理流。 ArrowChoice能够表达,但它将两个流“多路复用”在一个流中。

我正在寻找一种将流与多个输入和多个输出组合在一起的方法,同时仍然能够区分流被多路复用的情况和单独流的情况。

这可能吗?

1 个答案:

答案 0 :(得分:0)

也许您可以使用定义为的These类型(from here):

data These a b = This a | That b | These a b

通过这种方式,您可以表示您正在接收一个流,或另一个流,或两者都有。