编辑:在花了几个小时研究这个问题之后,我不认为我会找到任何能够真正节省我时间的东西,相比于在所有这些平台上寻找合适的语言、合适的绑定以及维护这个环境所花费的时间和精力。我接受的答案似乎是最现实的,因为这将是最好的想法,对大多数人。我从这些对话和其他我正在进行的对话中得出的观点是,唯一真正的前进之道是要么使用一种可以在没有外部绑定的情况下运行的函数式语言,要么使用由商业实体(如F# )维护的绑定。这是太多的工作和太少的需求,而在野外可利用的状态反映了这一点。我希望有一天它会改变。
我想开始在我的软件中使用一种函数式语言,,以及作为我的主要语言的Objective (C作为绑定?)。必须跨平台,即Windows、Linux、OSX (x86)和iOS (ARM).我应该使用什么,如何实现这一点?
为了实现我的目标-C,我计划很快切换到LLVM后端和Clang,如果这有什么区别的话。
我对任何函数式语言都没有任何“知识投资”,尽管我已经搞砸了几个。我正在从头开始学习一个,所以如果可能的话,我想学一些非神秘的东西。
以下是我想要做的事情的例子:
发布于 2011-02-21 01:57:17
Gambit或小鸡计划可能是你最好的选择--它们编译成C。
发布于 2011-02-21 17:13:14
正如丹尼尔·宾兹利( Danielünzli)提到的,我们有一个OCaml iPhone应用程序正在iPhone应用商店出售。(这是一款名为Cassino的纸牌游戏,如果你想找的话。)苹果在2010年9月放弃了他们的语言限制,我们没有遇到他们的任何抵制(当然,我们是一个非常小的玩家)。
我收集了一些用OCaml编写OCaml应用程序的教程示例,您可以在我们的网站上找到这些示例:
http://psellos.com/ocaml/example-app-portland.html
http://psellos.com/ocaml/example-app-slide24.html
您没有提到是否希望GUI代码跨平台。这是个很难解决的问题。我们的代码使用瘦包装来访问本机Cocoa库,这些库在Linux或Windows上不起作用。它们在OS上工作(至少是一个子集)。在本教程示例中,您可以看到一些定制的(大大简化的) Cocoa包装器。
OCaml在您提到的所有系统上都能很好地工作。对我来说,这似乎是一个不错的选择(一个有点偏颇的OCaml爱好者)。
发布于 2011-02-21 09:31:08
OCaml不是GPL,编译器本身是在下发布的,标准库是在LGPL下发布的,有一个静态链接异常。有关更多细节,请参见此处:
http://caml.inria.fr/ocaml/license.en.html
有些人已经在OCaml上做了一些应用程序,你不需要花3000欧元就可以在应用商店上找到。请遵照下列指示:
http://web.yl.is.s.u-tokyo.ac.jp/~tosh/ocaml-on-iphone/index.html
http://psellos.com/ocaml/compile-to-iphone.html
https://stackoverflow.com/questions/5061585
复制相似问题