标准 ML 的 GUI?
出于好奇,我最近开始学习标准机器学习。所以我知道的是它有一个高效的编译器(MLton),它允许我们自由地使用抽象而不必担心性能。
如果我也可以使用标准 ML 进行一些 GUI 编程,那就完美了。是否有类似 Gtk、Qt 或 WxWidgets 之类的标准 ML 绑定?
非常感谢。
I started learning Standard ML recently out of curiosity. So what I know is that is has an efficient compiler (MLton) which allows us to freely use abstractions without worrying about performance.
It would be perfect if I could do some GUI programming with Standard ML, too. Is there anything like Gtk, Qt, or WxWidgets binding for Standard ML?
Thank you very much.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这是一篇论文,描述了mGTK 项目,它是与 GTK 绑定的标准 ML。还有一些 OpenGL 接口,尽管这更多是面向 2 和 3D 图形而不是专门的 GUI工具包。 eXene 是一个用于 X Windows 的工具包。 sml_tk 是 Tk 的接口。
Here's a paper describing the mGTK project, which is a Standard ML binding to GTK. There are also a couple of interfaces to OpenGL, although this is more 2 and 3D graphics-oriented rather than specifically a GUI toolkit. eXene is a toolkit for X Windows. sml_tk is an interface to Tk.
有针对外国工具包的绑定,但设计了 eXene 工具包原生用于 SML 并利用并发 ML 的功能。我几年前使用过它,发现它非常适合该语言并且使用起来很愉快。但它没有在更广泛使用的工具包中找到的庞大组件库。
There are bindings for foreign toolkits, but the eXene toolkit was designed to be native for SML and to exploit the features of Concurrent ML. I used it years ago and found it a very smooth fit for the language and a pleasure to use. But it does not have the ginormous library of components that you find in the more widely used toolkits.
Giraffe Library 提供到支持 GObject Introspection,其中包括 GTK。在撰写本文时,GTK 3 堆栈的绑定可用。虽然 cairo 图形库不支持 GObject Introspection,但 Giraffe 库提供了一些 cairo 函数的绑定。
尽管SML有非常精确的定义,但该定义不包括FFI,并且编译器之间存在相当大的差异。在撰写本文时,Giraffe Library 仅支持 MLton 和 Poly/ML。
Giraffe Library provides SML bindings to libraries that support GObject Introspection, which includes GTK. At the time of writing, bindings are available for the GTK 3 stack. Although the cairo graphics library does not support GObject Introspection, Giraffe Library provides bindings to some cairo functions.
Although SML has a very precise definition, the definition does not include an FFI, and there is considerable variation between compilers. At the time of writing, Giraffe Library supports only the FFIs of MLton and Poly/ML.