【发布时间】:2017-08-04 05:06:00
【问题描述】:
我是 ML/Haskell 的初学者,我正在尝试创建一个结构列表。 实际上,我正在使用Urweb(功能性网络编程语言,ML 和 Haskell 的许多功能)开发一个 Web 应用程序。我正在尝试创建一个到 Tinymce(开源富文本编辑器,它包括所有插件,如打印,链接)。因此,为了管理所有插件,我以结构的形式编写,我需要一个数据结构来保存所有结构(在我的例子中是插件),并且在最后阶段可以用来初始化我的编辑器。
例如:
val plugins = [print, link, img];
列表中的元素plugins如print是一个结构体:
structure print = struct
type t = string
.
.
end
我怎样才能做到这一点?
【问题讨论】:
-
在 SML 中根本不能将结构放入列表中;它们是模块语言的一部分,而不是包含可操作值的核心语言。也就是说,我要重申,在我们提供帮助之前,我们需要知道您的最终目标是什么。
-
@jeevjyot 听起来您可能更想要仿函数,例如查看链接中包含的小“插件”,因为仿函数的结果共享相同的类型,它们可以 i> 被包含在一个列表中。 catonmat.net/blog/on-functors
-
哦,对,这听起来像是个主意。所以所有函数都会返回结构,这就是它们共享相同类型的方式,对吧?如果我错了,请纠正我。感谢您的链接。 @马特
-
@jeevjyotsinghchhabda 对,共享相同的输入/输出类型,但函数仍然可以在其各自的结构上具有“闭包”。
-
@matt 对,有道理。非常感谢,我会努力实现的。再次感谢