问题标签 [reactive-banana]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
haskell - 如何回顾前一刻
我每时每刻都在阅读按钮的状态(无论是否按下):
所有读取状态都存储eButtonState
在网络描述中desc
。
当前时刻的状态1
与前一时刻的状态相同时,该按钮被认为是新按下的0
。因此,如果事件序列是一个列表,则函数将这样编写:
我想应用这个功能,eButtonState
所以我会知道按钮是否是新按下的。
有可能吗?你会怎么做?如果有更好或更常见的想法或方法来实现这一目标,我将不胜感激。
haskell - 将元组 2 的事件流解压缩为两个流
在给定的反应香蕉中,Event t (a, b)
您将如何引导它(Event t a, Event t b)
?
Traversable#sequence
似乎用Monad
for(,)
提供的一些实例来解决它,但Event t
只是Functor
.
haskell - 在 reactimate 中执行 MonadIO 动作
在响应式香蕉中,我尝试使用hArduino 包中的reactimate :: Event (IO ()) -> Moment ()
一些操作运行,这是. 包装中似乎没有提供的功能。您将如何执行操作?Arduino
MonadIO
Arduino a -> IO a
Arduino
reactimate
haskell - 反应性香蕉:状态单子与否?
我有一个基于 Reactive Banana 的界面(WX)。现在我对如何真正管理状态有不同的疑问:
我应该将状态视为
Behavior
我在代码中定义的 s 吗?如果状态也依赖于外部“事件”,那么考虑 IORef 不仅与 GUI 相关会更好吗?
或者我可以使用 State Monad 吗?到目前为止,我看到的所有示例都定义了 IO 环境中的网络。有任何意义堆栈
State Monad
和如何?与Moment
?
haskell - Reactive Banana:数据中的更改状态
从使用法线Int
保持计数器状态的 Reactive Banana Wx 中的 Counter 示例开始:
如何Int
用更通用的方式替换和更新计数器data
:
我不知道如何用这样的count
东西来引用内部函数:
任何想法?
haskell - 在响应式香蕉中,从多个线程触发处理程序操作是否安全?
触发火灾行动是否安全
来自编译反应香蕉图的不同线程?
haskell - Reactive Banana:如何使用来自远程 API 的值并将它们合并到事件流中
我在 WX 界面中使用 Reactive-Banana。按下按钮时,我需要从外部服务 API 检索值。
我有一个Behavior
基于数据类型的泛型AppState
,它基于函数转换(doSomeTransformation
)“累积”转换后的变化。getRemoteValue
转换后的值由事件传输,当按下界面上的按钮时,它们来自远程 API ( )。我编写了代表基本部分的代码的精简版本:
和阴谋集团:
我的问题是如何编写doSomeTransformation
以及如何myRemoteValue
将远程 API 值用作普通事件值。
changes
来自banana-reactive 的签名如下:
它将包装我IO Int
的getRemoteApiValue
。
所以基本上我怎么能从:
?
顺便说一句,我不确定拥有这个不同的函数签名是否更清晰:
doSomeTransformation :: Int -> AppState -> AppState
,其中Int
值由 API 返回值表示。听起来像是两个Behavior
s 和一个流。也许是解决问题的坏方法?
haskell - Reactive Banana:使用对外部 API 的参数化调用
从这里的上一个问题开始: Reactive Banana: how to use values from a remote API and merge them in the event stream
我现在有一点不同的问题:如何将Behaviour
输出用作 IO 操作的输入并最终显示 IO 操作的结果?
以下是上一个答案中的代码已更改为第二个输出:
正如您所看到的,我正在尝试使用应用程序的新状态 -> getAnotherRemoteApiValue
-> 显示。但它不起作用。
实际上有可能这样做吗?
更新 基于以下 Erik Allik 和 Heinrich Apfelmus 的答案,我有当前的代码情况 - 有效:):
haskell - 创建多态函数的事件流 - 可能吗?如果是,如何?
我目前正在使用反应香蕉学习 FRP,并想创建一个随机函数流。我想出了这个:
它似乎有效,我可以这样使用它:
但是,当然,当我尝试共享该流以生成不同类型的数字时:
类型检查器抱怨,我理解。然后我尝试将函数概括为以下内容:
然后 GHC 抱怨非法多态签名以及我是否想启用 ImpredicativeTypes。我做了很长一段时间试图注释所有内容以使其工作,但 GHC 总是抱怨它无法匹配类型。
我的问题是 - 有可能做我想做的事吗?我真的需要 ImpredicativeTypes 还是我做错了?
我认为 RankNTypes 应该足够了,但我还没有使用此类扩展的经验。
提前致谢!
编辑:
作为记录,现在我基于有用响应的解决方案是: