gpt4 book ai didi

events - 与传统 FRP 框架相比,Netwire 中的事件处理

转载 作者:行者123 更新时间:2023-12-04 03:44:51 25 4
gpt4 key购买 nike

大多数 Haskell FRP 框架(如 AFRP、Yampa 和 Reactive-banana)在连续时变函数和离散函数之间有所区别。通常他们称它们为行为和事件。

一个异常(exception)是 Netwire,它使用抑制幺半群来模拟事件。这种方法的优缺点是什么?

特别是,我对 FRP 在机器人控制中的应用很感兴趣。比如这篇论文http://haskell.cs.yale.edu/?post_type=publication&p=182展示了一种使用事件在 FRP 中对任务和 HSM 抽象进行编码的方法。这可以直接翻译成Netwire吗?

最佳答案

事件作为潜在抑制信号的优点是它允许您非常简洁地编码最复杂的 react 公式。想象一个开关,按下时显示"is",否则显示“否”:

"yes" . switchPressed <|> "no"

这个想法是 switchPressed如果相应事件发生,则其作用类似于标识线,否则禁止。这就是 <|>进来。如果第一根线禁止,它会尝试第二根。这是一个由两个按钮(左和右)控制的假设机器人 ARM :
robotArm = integral_ 0 . direction
direction =
((-1) . leftPressed <|> 0) +
(1 . rightPressed <|> 0)

虽然机器人 ARM 是假设的,但此代码不是。这确实是您在 Netwire 中编写此内容的方式。

关于events - 与传统 FRP 框架相比,Netwire 中的事件处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14654385/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com