次は "()" が 1 秒間に 10 回出力されると思います。しかし、1秒後にハングします。なんで?
adaptE $ fmap print $ filterE (const True) $ atTimes [0.1, 0.2 ..]
filterE で使用されている liftM に関連していることがわかりました。
filterE :: (Ord t, Bounded t) => (a -> Bool) -> EventG t a -> EventG t a
filterE p m = justE (liftM f m)
where
f a | p a = Just a
| otherwise = Nothing
filterE
を使用して再実装しようとしましfmap
たが、うまくいくようです。なんで?規格filterE
はどのように使用されるように設計されていますか?
reactive
パッケージが提供する多くの標準関数( diffE
、 などintegrate
) を再実装していることに気付きました。パッケージにバグがあるということですか、それとも間違った方法で使用しているということですか?
ありがとう!