问题标签 [threepenny-gui]

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.

0 投票
1 回答
3803 浏览

haskell - do 表示法与 let 中的模式匹配

我最近在使用threepenny-gui时遇到了一个错误 ,它通过将代码从do表示法中的<-模式匹配更改为使用let表示法的模式匹配来解决。

在这两种形式的模式匹配之间进行更改时,我是否应该期望行为发生变化?

具体如下代码:

在 IO 单子中:

改为:

这是为我解决问题的提交的链接: https ://github.com/Davorak/threepenny-gui/commit/fbf6cbe25875fafdc64f7a111ddebf485b45143b

其他平台详细信息:操作系统:10.8.5 ghc:7.6.3

编辑:添加了 IO monad 正在发生这种情况的事实

0 投票
1 回答
118 浏览

haskell - 行为中的元素(功能反应式编程)

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

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

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

我可以做类似的事情

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

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

0 投票
1 回答
361 浏览

haskell - 尝试以特殊行为呈现 threepenny-gui 中的字段

我想要做的是设置字段,当它们处于焦点时显示详细信息,但在没有焦点时显示摘要。例如。

一种)。当它失去焦点(变得模糊?)时,我将值保存在(状态?)映射中,然后将值更改为旧值的函数(即汇总值)

乙)。当它获得焦点时 - 我将汇总值替换为我保存在地图中的旧值

我不知道该怎么做,但我想我可能需要一个状态单子和 UI 单子。我的尝试是:

但我无法让这张地图工作 - 因为它需要跟踪所有的电话......我想它应该是 State monad 什么的?

谢谢。

ñ

0 投票
1 回答
168 浏览

haskell - 将文本字段和按钮点击转换为“UI(事件字符串)”

我正在尝试使用threepenny来了解FRP。

我想生成包含用户输入的事件,并在每次单击按钮时触发。您可以在github上查看代码。

我试图用一个函数来做到这一点

它稍后会在这样的 do 块中使用。

但它最终只是在第一次点击后变成空字符串。在此之前,它包含预期的值“Ash”。我认为正在发生的是,当我生成事件流时,输入的值被提取,而不是每次点击一次。我环顾了文档,没有看到任何内容m a -> Event () -> m (Event a),但我对 frp 很陌生,可能错过了一些东西。

0 投票
1 回答
305 浏览

html - threepenny-gui - 打开文件

亲爱的 Haskell 社区 我已经编写了我的第一个 gui 应用程序,并决定使用threepenny-gui 来这样做。

下面的任务是在给定文件夹中的文件中搜索匹配项,并提供打开这些文件的链接。此外,我做了很好的解析和渲染功能,因为文件(大部分)具有特殊的格式。

但是现在我偶然发现了一个问题——href="file://localhost/home/user/folder/file.pdf"出于安全原因,大多数浏览器都禁止打开指向本地文件的链接,我确实理解并认为这是完全明智的。

当程序和文件在同一个文件夹中时,我尝试使用href="./file.pdf",这似乎也不起作用。

整个应用程序的代码可以在github/epsilonhalbe 获得,我在一个文件夹中运行它并通过浏览器访问它localhost:100000

0 投票
2 回答
513 浏览

haskell - 为什么一些三便士-gui FRP 组合器在 MonadIO monad 上运行而不是纯粹的?

首先声明一下,由于我对 Haskell 的了解不够深入,我可能完全误解了threepenny-gui 的工作方式,所以请对我的断言持保留态度。:-)

在我看来,一些组合器并不纯粹,例如

步进器是否必须在某种类型的 IO monad 上运行(因此它不是纯的),或者我在这里误解了一些东西?第二个问题,如果这些组合子确实不纯,那是为什么?对我来说,这使得构建事件图的代码不如响应式香蕉那么好,因为必须使用 IO monad 而不是纯粹的普通函数。代码似乎变得比反应香蕉更复杂。

更可怕的是,valueChange 从类型上看似乎是纯的

但它实际上是在内部使用 unsafeMapIO ,所以它实际上是在做隐藏的 IO 吗?再说一次,我可能会误解一些东西,但这不是 Haskell 中最高的罪过吗?这也令人困惑,我无法从类型中看出回调注册是如何发生的……这在我之前在 Haskell 中从未发生过……这样做是为了让用户不必处理 Frameworks monad 吗?

0 投票
1 回答
400 浏览

haskell - 如何在 Windows 上运行 threepenny-gui 示例

我正在测试 Haskell gui 编程的threepenny-gui 包。按照此处的说明,我做了:

并得到:

但在那之后什么也没有发生。没有浏览器启动。另外,如果我打开 Firefox 并转到http://0.0.0.0:8023/,它会显示Unable to connect. 我已经关闭了windows防火墙,但它并没有改善任何东西。

我在这里遗漏了什么吗?

0 投票
1 回答
324 浏览

haskell - 混合 Threepenny-Gui 和 StateT

我对 Threepenny-Gui 与 StateT 的互动有疑问。考虑这个玩具程序,每次单击按钮时,都会在列表中添加一个“Hi”项:

现在,我希望它打印自然数而不是“嗨”。我知道我可以使用 UI monad 是 IO 的包装器这一事实,并读/写我到目前为止在数据库中达到的数字,但是,出于教育目的,我想知道我是否可以使用StateT,或以其他方式通过 Threepenny-gui 界面访问列表的内容。

0 投票
2 回答
204 浏览

haskell - 为Canvas设计一个绘图api

我正在向threepenny ui api 添加一些功能。我想有能力用画布画线。

我可以编写的函数具有以下签名:

每个原语moveTolineTo应该发生在一个beginPath..stroke 调用之间。您将如何执行beginPath...笔画序列。按照设计,我想让用户别无选择地画线。所以用户不知道beginPath......笔画顺序。

0 投票
1 回答
397 浏览

haskell - 在客户端/服务器编程中使用threepenny-gui/reactive

我试图弄清楚如何使用 Haskell threepenny-gui及其反应功能来编写一个程序,让

  • 用户从列表框中选择一个项目
  • 将选择发送到外部服务器
  • 从服务器取回结果列表
  • 用结果填充 listBox
  • 重复

看来我需要使用Handler,newEventregister执行上述操作。如果有人可以向我指出一些执行上述类似操作的现有代码,那就太好了。

我找到的最接近的是GameThing.hsthreepenny-guisamples目录(但它不使用register)。

更新:

我在问我是否应该使用Handler,newEventregister--- ,如果是的话,这些功能的一些说明或示例。

此外,需要明确的是,总体情况是:

换句话说,我需要做一些 IO(基于用户选择)然后显示该 IO 的结果。

更新:这是我的解决方案(基于@Taldykin 的回复):https ://github.com/haroldcarr/rdf-triple-browser/tree/master/haskell/src