Java中的GUI,SML中的Backend?

smo*_*kaj 6 java java-native-interface sml jna

我是函数式编程语言(即标准ML及其方言)的忠实粉丝,主要是因为它们的表现力允许非常简洁,干净的代码.使用ML比使用Java可以更快地解决许多问题.

但是,Java在编程GUI( - > SWT)时非常棒.我绝对不想用功能语言来做这件事.

这就引出了我的实际问题:是否有一种很好的方法可以在ML中编写程序然后用Java编写的GUI包装它?

到目前为止我想出的是以下内容:

  • 编译ML程序(例如使用MLton或Poly ML)并从Java执行二进制文件作为外部程序(http://www.rgagnon.com/javadetails/java-0014.html).
    问题:前端/后端可以通信的唯一方法是通过字符串.这可能需要大量(困难)编码/解码.
  • 使用JNI/JNA.根据我的阅读,这将允许您传输整数,数组等.我认为外部程序必须用C/C++编写才能实现.使用MLton的 外部函数接口,我可以用C语言编写一个接口到我的函数程序,并静态链接整个事物.
    问题:显然,这只适用于动态库,即Windows中的dll.但是,MLton只允许我将ML/C程序编译为可执行文件.在尝试创建一个DLL时,我遇到了一大堆错误.

有任何人对此有经验吗?有一个更好的方法吗?
提前致谢!-Steffen

编辑:我知道Scala试图将函数式编程的概念引入Java.我试过了,但我认为它不能与实际的函数式编程语言竞争(在表达方面)

chr*_*ris 1

这并不是完全准确的答案,但有一种针对 JVM 非常面向机器学习的函数式语言:Yeti

因此,如果您喜欢用 ML 进行编码,那么当前您可以在 JVM 上进行编码,当然它与所有 Java API 集成得很好。