用于C ++应用程序中库的良好跨平台函数语言?

时间:2010-06-24 09:09:09

标签: c++ functional-programming cross-platform

对于跨平台Qt C ++应用程序中使用库的快速函数语言,我有哪些选择?

似乎几乎所有语言(无论是否有功能)都能以一种简单的方式调用C / C ++代码。我想反过来 - 使用C ++在Qt中编写一个应用程序,用于有状态的业务逻辑,GUI和东西,但是下拉并使用核心计算库的函数语言。

哪种方式易于使用?例如,OCaml代码可以编译成静态库,然后由C ++应用程序使用吗?

谢谢, 里卡德

4 个答案:

答案 0 :(得分:6)

Haskell有这个功能,虽然与Qt / qmake的交互以及你使用ghc的构建过程可能需要一些技巧才能开始工作:

http://www.haskell.org/haskellwiki/Calling_Haskell_from_C

还有一个名为HaskellDirect的项目,它看起来与你的目的相似:

http://www.haskell.org/hdirect/

答案 1 :(得分:2)

AutoCAD使用AutoLisp所以我的建议是Lisp。

答案 2 :(得分:2)

我很想看看qtHaskell并在Haskell中完成所有事情。我的观点是基于唐·斯图尔特在xmonad in Haskell取得的巨大成功。

答案 3 :(得分:1)

Lisp和Haskell是优秀的函数式语言,但如果我们考虑将C / C ++代码与语言结合起来的简易性,我建议使用lua。

直接将C函数绑定到lua非常简单,解释器非常紧凑且易于构建库,它是最快的脚本语言之一,并且使用luabind,您可以轻松地绑定C ++类,模板实例化等等。过去我必须为许多脚本语言做绑定,而且我从来没有找到过像lua那样简单的语法。如果你喜欢通过swig绑定东西,那么它也会支持swig,这将允许你的应用程序支持多种脚本语言。

从纯语言的角度来看,lua的元特征/元编程方面(与lisp相比)使得支持各种编程范例变得非常容易,尽管我个人认为它最适合函数式编程。它非常可定制,非常适合嵌入式使用。

但是,由于您已经在使用qt,因此qtHaskell也是一个不错的选择。