10

对于我正在处理的任务,Elm 编程语言的信号系统似乎是一个合适的解决方案。

但是我的纯计算函数是在 Haskell 中实现的。是否有一个 Haskell 库可以让我构建一个信号图(在节点中使用我的纯函数),以便它像在 Elm 中一样工作?

我的背景

我需要根据需要观察大量计算的中间结果,即我不想实际格式化和输出每个中间结果,但是如果需要,那么我应该用最新的中间结果(从计算信号)。

实际上,有几个并行计算,其中一些使用其他的结果,所以我想要几个独立的输出信号来观察它们。所以我相信我可以编写一个 Elm 程序来对系统进行建模,以观察可用的中间结果。(也许,我错了,我应该尝试至少在 Elm 中编写一个原型,但我也在考虑与我的主要 Haskell 代码集成。)

4

2 回答 2

2

我目前维护的Helm可能是您正在寻找的。它确实将信令与始终出现的 SDL 窗口结合在一起。您可能能够破解渲染函数并在没有 SDL 的情况下仍然使用 Helm Signal,或者您可以从 Helm 中获取灵感并Signal使用 Elerea(Helm 在后台使用它)编写类似的类型。

一个更好的想法可能是修改 Helm 以允许main可能没有任何内容可显示并向我们发送拉取请求的用例。

于 2015-03-20T13:23:12.183 回答
1

Tekmo 的评论 到“Elm 0.15:任务、邮箱和导入语法”的公告:

Haskell 版本的邮箱pipes-concurrency. Elm's的类比Address是 an Output,a 的类比Signal是 an Input

(顺便说一句,这似乎与我所寻找的非常接近。最初,在以前的 Elm 版本中,我真正想要的抽象似乎已经丢失,但任务邮箱可能非常适合我的需求。所以,现在我知道——感谢 Tekmo 的评论——类似的 Haskell 库是pipes-concurrency.)

于 2015-04-21T09:22:02.317 回答