首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java的GUI,SML的后端?

Java的GUI,SML的后端?
EN

Stack Overflow用户
提问于 2011-07-29 19:08:29
回答 2查看 598关注 0票数 6

我非常喜欢函数式编程语言(即标准ML及其方言),主要是因为它们的表现力使代码非常清晰。与Java相比,我使用ML可以更快地解决许多问题。

然而,当涉及到编程GUI (->SWT)时,Java确实很棒。我绝对不想用函数式语言那样做。

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

到目前为止,我得出的结论如下:

  • 编译ML程序(例如使用MLton或Poly ),并将二进制作为Java (http://www.rgagnon.com/javadetails/java-0014.html)的外部程序执行。 问题:前端/后端通信的唯一方式是通过String。这可能需要大量(困难的)编码/解码。
  • 使用JNI/JNA。据我所读,这将允许您转换整数,数组等。我认为必须用C/C++编写外部程序才能工作。使用MLton的外接功能接口,我可以用C编写一个接口到我的函数程序,并静态地链接整个程序。 问题:很明显,只适用于动态库,即Windows中的dll。但是,MLton只允许我将ML/C程序编译成可执行文件。当我试图创建一个dll时,我会得到一大堆错误。

有人有这方面的经验吗?有更好的方法吗?

提前谢谢!-Steffen

编辑:我了解Scala,它试图将函数式编程的概念引入Java。我已经尝试过了,但我认为它无法与实际的函数式编程语言(在表达式方面)相媲美。

EN

回答 2

Stack Overflow用户

发布于 2011-07-29 19:14:01

这不是完全正确的答案,但是对于JVM来说,有一种非常面向ml的函数语言:叶蒂

因此,如果您喜欢在ML中进行编码,这可能是当前您可以在JVM上获得的结果,当然,它与所有Java都集成得很好。

票数 1
EN

Stack Overflow用户

发布于 2013-03-06 17:09:17

是否有一种用ML编写程序,然后用Java编写的GUI包装的好方法?

我不知道这是否适合小型应用程序,但这绝对是一种适用于大型IDE样式的方法: Isabelle/ML与Isabelle/Scala/JVM。这是交互式定理证明的应用,但从某种意义上讲,普通的SML编程是一个微不足道的例子。

因此,您可以编写基本的Isabelle/ML代码,它以老式的REPL方式发出一些消息,但是输出可以由JVM端的GUI组件来解释。Isabelle/jEdit经常这样做,用于彩色文本的漂亮打印,并带有少量丰富的文本(子/上标和粗体)。

关于将管道/套接字上的函数值显式地重新编码为字符串的问题:在Isabelle/ML/Scala中,这非常简单,因为它模仿了SML在非类型化内存中表示类型化值的方式,但在这里使用了非类型化XML树而不是位。XML传输语法是专门用来保持简单的: YXML,而不是官方的准人类可读的XML。所有这些都差不多。8000字节的SML源代码--我很想在这里发布源代码,但是最好在web上搜索"Isabelle YXML“或"YXML”。

由于Scala/JVM单独被提到作为独立的替代方案:它确实有效,Scala在模仿许多编程风格(面向高级功能对象)方面也非常强大和灵活,但是对于像定理证明这样复杂的符号应用程序,它就是不能达到SML的纯度和稳定性。(请注意,这里的底层SML平台是Poly。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6877842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档