- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们有这样的代码:
guiState :: Discrete GuiState
guiState = stepperD (GuiState []) $
union (mkGuiState <$> changes model) evtAutoLayout
evtAutoLayout :: Event GuiState
evtAutoLayout = fmap fromJust . filterE isJust . fmap autoLayout $ changes guiState
guiState :: Discrete GuiState
guiState = stepperD (GuiState []) $ mkGuiState <$> changes model
最佳答案
问题
Does the reactive-banana library support recursively defined events?
Event
直接就自身而言。type Behavior a = Time -> a
type Event a = [(Time,a)]
evtAutoLayout
等于 _|_
,即未定义。evtAutoLayout
时才会更改。事件发生,但只有在您知道 GUI 状态是否发生变化时才会发生,这反过来等。您总是需要通过插入一个小的延迟来打破扼杀的反馈循环。不幸的是,reactive-banana 目前不提供插入小延迟的方法,主要是因为我不知道如何用 [(Time,a)]
来描述小延迟。以允许递归的方式建模。 (但请参阅答案 3。)Event
根据 Behavior
再次引用事件。换句话说,只要你通过一个行为,就允许递归。import Reactive.Banana.Model
filterRising :: (FRP f, Ord a) => Event f a -> Event f a
filterRising eInput = eOutput
where
eOutput = filterApply (greater <$> behavior) eInput
behavior = stepper Nothing (Just <$> eOutput)
greater Nothing _ = True
greater (Just x) y = x < y
example :: [(Time,Int)]
example = interpretTime filterRising $ zip [1..] [2,1,5,4,8,9,7]
-- example = [(1.0, 2),(3.0, 5),(5.0, 8),(6.0, 9)]
filterRising
仅返回大于先前返回的那些事件。这在 documentation for the stepper
function 中有所暗示.0
时会发生什么,但是,它可能执行得太早。您可能需要进行一些试验才能找到一个好的解决方案。 关于haskell - react 香蕉可以处理网络中的循环吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7850389/
我正在开发一个基于终端的小型 UI,我想使用 Reactive Banana 来描述交互。我唯一感兴趣的外部事件是用户是否按下了某个键。 根据我从 Frameworks 文档中收集到的信息,我可以使用
我需要创建一些自定义滚动动画 - 并想开始探索为一个简单的 block 制作动画。 使用 json - 我想提供 block 的骨架(类名、高度、宽度、背景),然后是与滚动值相关的每个开始/结束帧的
Android 比较 2 个图像以使用位图代码并告诉水果类别是水果(苹果/香蕉)还是不是水果。 我有问题与 Bitmap 和 BitmapFactory 比较有运行时错误,我有问题的解决方案。 act
我目前正在尝试通过 Heinrich Apfelmus 的 reactive-banana 了解 FRP ,与我看过的其他库相比,它似乎是一个文档齐全且简单的库。 但是,我无法理解 AddHandle
我有一个基于 Reactive Banana 的界面 (WX)。现在我对如何真正管理状态有不同的问题: 我应该将状态视为我在代码中定义的行为吗? 如果状态也依赖于外部“事件”,那么不仅仅与 GUI 相
假设我有一个事件触发器,我想在触发时做两件事。首先,我希望它更新某些行为的值。其次,如果满足其他条件,我希望它使用行为的更新值触发另一个事件 send_off 。以代码形式表达,假设我有 trigge
我尝试更改处理器中的 GPIO 数据(不使用 wiringPI 库) int fd = open ("/dev/mem", O_RDWR | O_SYNC); unsigned long* gpio1
从这里的上一个问题开始: Reactive Banana: how to use values from a remote API and merge them in the event stream
我正在考虑类似gnugo的东西的ascii接口(interface)。我认为轮流是一对共同进化(允许用户输入的单子(monad))流。这让我隐约想起了管道。 我不太确定如何使用现有的库来做到这一点。
我想检索小部件值。 在下面,按下按钮 b 检索 s_in 并在 native wxhaskell 中打印它。 b >= putStrLn] 我喜欢在 react-banana 上做同样的事情,但在下面
我在 WX 界面中使用 Reactive-Banana。当按下按钮时,我需要从外部服务 API 检索值。 我有一个基于数据类型AppState的通用Behavior,它根据函数转换(doSomeTra
在 reactive-banana a -> Maybe a -> Maybe a -> Bool -> Event t b -> Event t c -> Behavior t
嗨,我正在尝试安装(无需更新或安装最新的编译器),reactive-banana-wx 和要求之一失败 cabal install reactive-banana-wx 这是错误 Configurin
我是一名优秀的程序员,十分优秀!