2
使用管道,其給出:瞭解`conduit`輸出
Prelude> :t (yieldMany [1..10] .| mapC show .| mapC print .| sinkList)
(yieldMany [1..10] .| mapC show .| mapC print .| sinkList)
:: Monad m => ConduitM a c m [IO()]
爲什麼沒有任何輸出得到記錄?
Prelude> runConduit $ yieldMany [1..10] .| mapC show .| mapC print .| sinkList
Prelude>
我的期望是,爲[1..10]
的流,每個元素的String
,即show
,值將被打印。
請解釋這個輸出。
IIRC,您在最近的CR問題中遇到類似問題。遇到像這樣的問題時,請使用帶有類型註釋的適當源文件。您經常會注意到,當使用'IO'時,GHCi有點不同。如果添加了類型註釋,GHC會向您大聲說'runConduit $ ...'的結果不是'IO [()]',而是'IO [IO()]'。 – Zeta