3

我只是想开始使用 FRP 和threepenny-gui,我什至不知道如何做一些基本的事情。

假设我有一个这样定义的函数

timesClicked :: Element -> Behavior Int
timesClicked elem = accumulate (+) 0 (1 <$ UI.click elem)

我想在页面上显示行为的价值。

我可以做类似的事情

setup :: Window -> UI ()
setup rootWindow = void $ do
  button <- UI.button #+ [ string "Clickity!" ]
  output <- UI.p
  getBody rootWindow #+
    map element [ button, output ]

  let clicks = timesClicked loginButton

编辑:在这里工作完整代码。

我不知道如何将行为附加到输出中。

4

1 回答 1

3

啊哈,我现在已经弄清楚了,并将其作为其他人的示例。

timesClicked elem = accumB (0::Int) ( (+1) <$ UI.click elem)


setup :: Window -> UI ()
setup rootWindow = void $ do
  button <- UI.button #+ [ string "Clickity!" ]
  output <- UI.p
  getBody rootWindow #+
    map element [ button, output ]

  clicks <- timesClicked button
  -- sink :: ReadWriteAttr x i o -> Behavior i -> UI x -> UI x
  element output # sink text (show <$> clicks)

如果有人想跟随我的进步,我已经把它放在了github 上

于 2013-12-18T23:17:27.953 回答