現在の値から動作 (セル/ヴァル) を更新します。
ただし、次のコードは、MVar 操作の例外で無期限にブロックされたスレッドをスローします。
「iの値:」が3回出力されると予想していました。私は何を逃したのですか?- ありがとう。
{-# LANGUAGE RecursiveDo #-}
module Main where
import FRP.Sodium
main :: IO ()
main = do
(e, t) <- sync newEvent
rec
b <- sync $ hold 0 $ snapshot (\_ i -> i + 1) e b
sync $ listen (value b) (\i -> putStrLn $ "value of i: " ++ show i)
sync $ t "ping"
sync $ t "ping"
sync $ t "ping"
return ()
- GHCi、バージョン 7.8.3
- ナトリウム-0.11.0.3