问题标签 [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.
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 是如何连接的?e
DomRef {e}
initBody
clearDom
with
withDom : (App {l} e ()) -> App {l} e ()
domPut : {x:a} -> f x -> App {l} e ()
f
DomRef {e}
haskell - 在 Dijkstra 的 Haskell 实现中无法发现代码中的问题
我知道问“为什么我的代码不起作用”不是最好的问题。但是,我想了解更多关于在图论问题的算法上下文中在 Haskell 中使用 monad 的信息,并以以下代码为起点来了解 ST monad 将如何用于此类算法。
我在一些更简单的算法(快速排序)上取得了进展,并取得了 Dijkstra 算法的进展。我无法编译 Dijkstra 算法的以下实现(2012 年编写):http ://www.rosettacode.org/wiki/Dijkstra%27s_algorithm#Haskell
我得到的错误如下:
(PS:这不是学校作业,这只是自我激励),我已经尝试了我在 Haskell 中所知道的一切(包括适当的缩进),但未能成功。