reactive-banana相关内容

FRP - 事件流和信号 - 仅使用信号会丢失什么?

在最近的经典 FRP 实现中,例如reactive-banana,有事件流和信号,它们是阶梯函数(reactive-banana 称它们为行为,但它们仍然是阶梯函数).我注意到 Elm 只使用信号,并且不区分信号和事件流.此外,reactive-banana 允许从事件流到信号(已编辑:并且可以使用 reactimate' 对行为采取行动,尽管它不被认为是好的做法),这意味着理论上我们可以应用所有 ..
发布时间:2022-01-02 13:57:36 其他开发

在reactimate内部执行MonadIO操作

在反应香蕉中,我试图在解决方案 您将如何在reactimate中执行Arduino操作? 我将通过执行具有明显副作用的IO动作来使它们间接执行.然后,在withArduino内部,我将观察到这种副作用并运行相应的Arduino命令. 这是一些示例代码.首先,让我们避免导入. {-# LANGUAGE GeneralizedNewtypeDeriving, ScopedTyp ..
发布时间:2020-11-22 07:17:00 其他开发

功能性香蕉旅行者 - 输入处理

这是我的 Traveler 项目的一个子问题。 我已经将处理输入的粗糙代码放在一起。它的工作原理,直到我介绍 TChan 混合。以下是工作代码,并举例说明如何使用它。然后,我会改变它并解释我为什么这样做。然后,我会讨论这个问题。 { - #LANGUAGE ScopedTypeVariables# - } import Control.Monad (永久) 导入Control.C ..
发布时间:2018-06-05 11:56:58 其他开发

反应性香蕉中的动态事件切换导致严重泄漏

我不确定这种行为是否是预期的(即我滥用了Reactive.Banana.Switch)或一个bug。 假设我有两个像-type的输入行为,我想根据事件在它们之间切换。我写了这个函数: switchBehaviors :: 行为t a - |最初和“真实”事件发生后的行为 - >行为t a - |在“假”事件之后产生的行为 - >事件t布尔 - |在行为之间进行选择 ..
发布时间:2018-06-05 11:24:23 其他开发

可能吗?:行为t [行为t a] - >行为t [a]

有没有一种方法可以让行为t [a] ,其中t时刻[a]的值是包含在行为t [行为ta] 在时间t? I.e,一个类型为的函数: 行为t [行为t a] - >行为t [a] 如果这是不可能的,那是因为逻辑上的不可能性或限制在反应香蕉? 解决方案 该类型是平凡居住的任何应用程序: $ b { - #LANGUAGE RankNTypes# - } impor ..
发布时间:2018-06-05 11:20:36 其他开发

启动Reactive-Banana输入循环后,SDL-Mixer音频停止

我一直致力于使用多个音轨的游戏,这些音轨的音量是根据鼠标移动实时调整的。一般来说,我使用SDl-Mixer作为音频,而Reactive-Banana作为游戏。问题在于,开始时全部开始的轨道在输入循环开始时停止播放。原因可能是其他原因,但我想知道SDL和Reactive-Banana之间有一些奇怪的互动,我不明白。我一直试图解决这个问题一段时间,但它可能只是简单的,我忽略了。提前致谢。以下是一个简单 ..
发布时间:2018-06-05 11:18:19 其他开发

在反应香蕉中执行单个开关

我正在使用 reactive-banana 构建一个多模式编辑器,而且大多数情况下它都很完美。为了扩展我的场景,编辑器是一些映射软件,或者您可以将其视为非常简单的矢量图形编辑器。它目前有两种状态 - 选择模式和多边形创建模式。在选择模式下,用户可以使用鼠标右键来选择先前创建的多边形(理论上,您可以选择新的选定模式),或者可以使用鼠标左键创建新的多边形按钮。 我们的目的是,当按下鼠标左键时,我 ..
发布时间:2018-06-05 11:06:17 其他开发

Reactive Banana的mapAccum函数如何工作?

我在堆栈溢出试图找到我的问题在使用反应香蕉库的解决方案的问题在这里看了一些问题的答案。所有的答案都使用了一些 magic 使用'mapAccum',我不太明白。看看API文档,我发现“高效组合 accumE 和 accumB ”。这并不是非常有用。 看来这个函数可以用来比较行为在这是我想要做的两个连续事件的时间。但我不清楚如何做到这一点。 mapAccum 的工作原理是什么? 解 ..
发布时间:2018-06-05 11:04:24 其他开发

为什么`changes`返回'Event t(Future a)`

更改 函数的类型为 Frameworks t =>行为t a - > Moment t(Event t(Future a))。 Future 是抽象的,只有一个函数会使用它( reactimate')。 然而,我可以很容易地写出如下函数: $ $ p $ changes':: Frameworks t => ;行为t a - >时刻t(事件ta) 变化'b = fmap(fmap c ..
发布时间:2018-06-05 11:01:14 其他开发

在Traveler游戏中实现一个计时器

这个问题是我开始此处的延续。 我使用 asteroid 的例子作为一个模型工作。 我想在这里讨论的问题是计时器的问题之一。小行星例子使用 event0 函数创建一个,它依赖于 Graphics.UI.WX 库。我不想在这个项目中使用WX。有人能告诉我什么 event0 在做一般的事情,以便我可以弄清楚我需要做些什么才能做出类似的功能? Reactive.Banana。框架模块。 来 ..
发布时间:2018-06-05 10:49:44 其他开发

如何实现递归依赖于自己的反应性香蕉行为?

我有一个行为,我想根据事件的发生和行为的当前值来改变它的值。在下面的例子中,我有两个计数器根据布尔行为是True还是False来更新。因为这段代码崩溃时发生了一个> 异常,但我不确定如何重构它以工作或解决该问题。 { - #LANGUAGE ScopedTypeVariables# - } import Reactive.Banana import Reacti ..
发布时间:2018-06-04 17:19:31 其他开发

反应香蕉:如何使用来自远程API的值并将它们合并到事件流中

我在WX界面中使用Reactive-Banana。 当按下按钮时,我需要从外部服务API检索值。 我有一个通用的行为 AppState ,根据函数转换( doSomeTransformation )。被转换的值由事件传输,并且当按下界面上的按钮时,它们来自远程API( getRemoteValue )。我写了代码的一个精简版本,它代表了基本部分: module Main where ..
发布时间:2018-06-04 17:18:33 其他开发

在反应香蕉中测试

有没有一种方法可以对反应性香蕉中创建的网络进行单元测试?假设我已经构建了一些包含一些输入事件的网络 - 是否可以验证事件在某些输入事件之后产生了一些输出流/行为有一定的价值。这样做是否有意义? 我注意到有各种解释* 函数,但似乎无法了解如何使用它们。还有 Model 模块,它看起来非常适合测试,但与真实实现完全不同。 解决方案 当你说“单元测试”的时候,我想象着像 QuickChec ..
发布时间:2018-06-04 17:06:05 其他开发

我们为什么要在FRP中使用行为

我正在学习反应香蕉。为了理解库,我决定实现一个虚拟应用程序,只要有人按下按钮就会增加计数器。 我使用的UI库是Gtk,但是与解释无关。 以下是我提出的非常简单的实现: import Graphics.UI.Gtk import Reactive.Banana import Reactive.Banana.Frameworks makeNetworkDescrip ..
发布时间:2018-06-04 17:03:10 其他开发

reactive-banana:包含行为的最新值的触发事件

假设我有一个事件触发器,我想在触发时做两件事情。首先,我希望它更新一些行为的值。其次,如果满足其他条件,我希望它使用行为的更新值触发另一个事件 send_off 。用代码形式表示,假设我有 trigger:事件b trigger = ... updateFromTrigger :: b - > (a - > a) updateFromTrigger = ... c ..
发布时间:2018-06-04 16:59:55 其他开发

反应 - 香蕉时间延迟

我浏览了反应香蕉的文档,我找不到明确指定的方法时间延迟。比方说,我想采取一个事件t a 并将其所有事件在未来1秒内转移;或从现在开始发生1秒钟的事件(在瞬间t 内);或类似的东西。反应式香蕉中是否有明确的延迟?如果没有,用户如何实现,例如,将输入延迟一秒钟? 正如本指出的,这是正确的:反应型香蕉不是固有的时间和延迟概念。 主要原因是很难保证逻辑时间和实时性是一致的。当一个事件的逻辑时间尚未计 ..
发布时间:2018-06-04 16:07:07 其他开发