4

コンシューマーの出力がパイプの入力に供給されるように、コンシューマーとパイプを構成する必要があります。

これは、次のようなコンビネータで解決できると思います。

Consumer i m r -> (r -> Producer o m r') -> Pipe i o m r'

またはこれ:

Consumer i m i' -> Pipe i' o m r -> Pipe i o m r

または次のようなリフティング関数:

Consumer i m r -> Pipe i o m r

またはこのように:

Consumer i m o -> Pipe i o m r

consumer >~ pipe私は成功せずにやってみました。では、これにどのようにアプローチするのですか?

4

2 に答える 2

5

最初の型シグネチャで、とが多相型シノニムとConsumerを使用する場合、必要なコンビネータは次のとおりです。ProducerConsumer'Producer'(>>=)

(>>=) :: Pipe i o m r -> (r -> Pipe i o m r') -> Pipe i o m r'

AConsumer' i m rは として型チェックしPipe i o m rます。同様に、 aProducer' o m r'は として型チェックしPipe i o m r'ます。

于 2014-07-14T21:13:27.253 に答える