我非常喜欢函数式编程语言(即标准ML及其方言),主要是因为它们的表现力使代码非常清晰。与Java相比,我使用ML可以更快地解决许多问题。
然而,当涉及到编程GUI (->SWT)时,Java确实很棒。我绝对不想用函数式语言那样做。
这就引出了我的实际问题:是否有一种用ML编写程序,然后用Java?编写的GUI包装的好方法?
到目前为止,我得出的结论如下:
有人有这方面的经验吗?有更好的方法吗?
提前谢谢!-Steffen
编辑:我了解Scala,它试图将函数式编程的概念引入Java。我已经尝试过了,但我认为它无法与实际的函数式编程语言(在表达式方面)相媲美。
发布于 2011-07-29 19:14:01
这不是完全正确的答案,但是对于JVM来说,有一种非常面向ml的函数语言:叶蒂。
因此,如果您喜欢在ML中进行编码,这可能是当前您可以在JVM上获得的结果,当然,它与所有Java都集成得很好。
发布于 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。)
https://stackoverflow.com/questions/6877842
复制相似问题