对于跨平台Qt C ++应用程序中使用库的快速函数语言,我有哪些选择?
似乎几乎所有语言(无论是否有功能)都能以一种简单的方式调用C / C ++代码。我想反过来 - 使用C ++在Qt中编写一个应用程序,用于有状态的业务逻辑,GUI和东西,但是下拉并使用核心计算库的函数语言。
哪种方式易于使用?例如,OCaml代码可以编译成静态库,然后由C ++应用程序使用吗?
谢谢, 里卡德
答案 0 :(得分:6)
Haskell有这个功能,虽然与Qt / qmake的交互以及你使用ghc的构建过程可能需要一些技巧才能开始工作:
http://www.haskell.org/haskellwiki/Calling_Haskell_from_C
还有一个名为HaskellDirect的项目,它看起来与你的目的相似:
答案 1 :(得分:2)
答案 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也是一个不错的选择。