[英]Sleeping with pipes in Haste and Haskell
我正在研究大量使用Pipes庫的Haskell程序。 我要將圖書館的一部分移植到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
但是類型不正確。 有沒有辦法獲得延遲管道?
您可能想看看https://github.com/imalsogreg/pipes-rt/blob/master/lib/Pipes/RealTime.hs#L127有一個功能pauseUntilUntil
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.