问题标签 [st-monad]

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 投票
0 回答
273 浏览

migration - 如何将 Control.ST 代码迁移到 Idris 2 (Control.App)?

Idris 2 没有Control.ST,只Control.Monad.ST​​有它是一个完全不同的野兽(它与 Haskell 的基本相同Control.Monad.ST,即在安全、纯接口后面的可变引用)。似乎Control.App大致模糊地应该替换它。但是,Control.App编写文档时并没有Control.ST考虑到,我无法弄清楚迁移路径应该是什么。

例如,在这个 Js 前端库中,我们有以下 Idris 1 API:

完全不清楚App这个接口的版本是什么。它是否应该简单地在任何地方使用,并且和App {l} e ()之间的关系会以不同的方式被跟踪?是否/ 应该使用该模式,即类似的东西?如果,'s type 是如何连接的?eDomRef {e}initBodyclearDomwithwithDom : (App {l} e ()) -> App {l} e ()domPut : {x:a} -> f x -> App {l} e ()fDomRef {e}

0 投票
1 回答
64 浏览

haskell - 在 Dijkstra 的 Haskell 实现中无法发现代码中的问题

我知道问“为什么我的代码不起作用”不是最好的问题。但是,我想了解更多关于在图论问题的算法上下文中在 Haskell 中使用 monad 的信息,并以以下代码为起点来了解 ST monad 将如何用于此类算法。

我在一些更简单的算法(快速排序)上取得了进展,并取得了 Dijkstra 算法的进展。我无法编译 Dijkstra 算法的以下实现(2012 年编写):http ://www.rosettacode.org/wiki/Dijkstra%27s_algorithm#Haskell

我得到的错误如下:

(PS:这不是学校作业,这只是自我激励),我已经尝试了我在 Haskell 中所知道的一切(包括适当的缩进),但未能成功。