我正在开发一个Haskell程序,它大量使用了Pipes库。我正在将库的一部分移植到Haste。我遇到的一个障碍是javascript处理休眠的奇怪方式。
我想要写的是一个简单的管道,它在发送结果之前会延迟
sleeper :: Int -> Pipe a a IO ()
sleeper time = forever $ do
temp <- await
sleep time
yield temp然而,看起来休眠就像一个回调。
setTimeout :: MonadIO m => Int -> IO () -> m ()我试着去做
sleeper time = do
temp <- await
yield temp
setTimeout time $ sleeper time但是类型不能正确排列。有没有办法得到延迟管道?
发布于 2014-08-30 02:00:25
您可能想看看https://github.com/imalsogreg/pipes-rt/blob/master/lib/Pipes/RealTime.hs#L127,那里有一个函数pauseUntil
https://stackoverflow.com/questions/25571513
复制相似问题