出于好奇,我最近开始学习标准 ML。所以我所知道的是它有一个高效的编译器(MLton),它允许我们自由地使用抽象而不用担心性能。
如果我也可以使用标准 ML 进行一些 GUI 编程,那将是完美的。标准 ML 是否有类似 Gtk、Qt 或 WxWidgets 的绑定?
非常感谢你。
出于好奇,我最近开始学习标准 ML。所以我所知道的是它有一个高效的编译器(MLton),它允许我们自由地使用抽象而不用担心性能。
如果我也可以使用标准 ML 进行一些 GUI 编程,那将是完美的。标准 ML 是否有类似 Gtk、Qt 或 WxWidgets 的绑定?
非常感谢你。
有外部工具包的绑定,但eXene工具包被设计为 SML 的原生工具包并利用 Concurrent ML 的特性。几年前我使用过它,发现它非常适合该语言并且使用起来很愉快。但它没有您在更广泛使用的工具包中找到的庞大的组件库。
Giraffe 库为支持GObject Introspection的库提供 SML 绑定,其中包括 GTK。在撰写本文时,绑定可用于 GTK 3 堆栈。虽然 cairo 图形库不支持 GObject Introspection,但 Giraffe Library 提供了对一些 cairo 函数的绑定。
尽管 SML 有一个非常精确的定义,但该定义不包括 FFI,并且编译器之间存在相当大的差异。在撰写本文时,Giraffe Library 仅支持MLton和Poly/ML的 FFI 。