Haskell 带谓词的动态切换
假设我有一个monadHaskell 带谓词的动态切换,haskell,reactive-programming,frp,reactive-banana,Haskell,Reactive Programming,Frp,Reactive Banana,假设我有一个monadM,一个函数* foo :: forall t. Frameworks t => Int -> M (Behavior t State) 和一个谓词 pred :: State -> Bool 我想得到一个值*(在任何必要的monad中) 这样,bar正好是foo n,直到信号传递的状态满足pred,在该点,bar切换到foo(n+1),并且重复该操作n从任意Int开始,例如1 我在学习玻璃钢方面有很多乐趣,但这个特殊的问题给我带来了麻烦 *同样考虑
M
,一个函数*
foo :: forall t. Frameworks t => Int -> M (Behavior t State)
和一个谓词
pred :: State -> Bool
我想得到一个值*(在任何必要的monad中)
这样,bar
正好是foo n
,直到信号传递的状态满足pred
,在该点,bar
切换到foo(n+1)
,并且重复该操作n
从任意Int
开始,例如1
我在学习玻璃钢方面有很多乐趣,但这个特殊的问题给我带来了麻烦
*同样考虑到用
行为t
代替事件t
什么是monadM
,这可能很重要?还有,你说“n
从某个int开始”,但是你从哪里得到n
呢?在我的特殊情况下M
是Rand
fromrandommand
。Behavior t State
s是一系列随机生成的环境,n
从1开始,表示从第一个环境开始。啊,所以n
是函数的固定参数,而不是不断变化的Behavior
等等。你确定条码的类型吗?这不应该是bar::forall t。框架t=>M(行为t状态)
?M(行为t状态)
,或时刻t(行为t状态))
或其他东西是的,我打算bar
成为某个一元值绑定的对象。
bar :: forall t. Frameworks t => Behavior t State