Haskell 反应型香蕉1.0单体API:现在如何定义递归行为?
当然,这是一个愚蠢的错误。我只需要添加Haskell 反应型香蕉1.0单体API:现在如何定义递归行为?,haskell,reactive-banana,Haskell,Reactive Banana,当然,这是一个愚蠢的错误。我只需要添加MonadFix m作为约束,因为我没有直接使用时刻Monad: mkCounter :: (MonadFix m,MonadMoment m,Enum a,Ord a) => a -> Maybe a -> Maybe a -> Bool -> Event b -> Event c -> m (Behavior a) 然后它在mdo上按预期工作,所以你最终尝试了1.0?“Moment没有Mon
MonadFix m
作为约束,因为我没有直接使用时刻
Monad:
mkCounter :: (MonadFix m,MonadMoment m,Enum a,Ord a) => a -> Maybe a -> Maybe a -> Bool
-> Event b -> Event c -> m (Behavior a)
然后它在
mdo
上按预期工作,所以你最终尝试了1.0?“Moment
没有MonadFix
实例”--在当前主机中。@ErikAllik是的,我决定从github获得最新版本,而不是用旧API浪费时间:)@duplode哦,我明白了,我犯了一个愚蠢的错误。。。问题解决了!
mkCounter :: (MonadMoment m,Enum a,Ord a) => a -> Maybe a -> Maybe a -> Bool
-> Event b -> Event c -> m (Behavior a)
mkCounter start minVal maxVal cyclic incE decE = do
-- .. same as above ..
counter <- accumB start $ unions [((incF <$> counter) <@ incE)
,((decF <$> counter) <@ decE)]
return counter
mkCounter :: (MonadFix m,MonadMoment m,Enum a,Ord a) => a -> Maybe a -> Maybe a -> Bool
-> Event b -> Event c -> m (Behavior a)