Хороший кросс-платформенный функциональный язык для библиотеки использует в приложении C++?

Каковы мои опции с точки зрения быстрого функционального языка для использования библиотеки в межплатформенном спокойном приложении C++?

Кажется, что почти все языки (функциональный или не) имеют некоторый способ назвать код C/C++ в непринужденной манере. Я хотел бы пойти наоборот - пишут приложение в QT с помощью C++ для бизнес-логики с сохранением информации, графический интерфейсов пользователя и материала, но выпадающий и используют функциональный язык для базовой библиотеки вычисления.

Которые просты в использовании этим способом? Может, например, код OCaml быть скомпилированным в статическую библиотеку и затем использованным приложением C++?

Спасибо, Rickard

10
задан Rickard 24 June 2010 в 09:09
поделиться

4 ответа

Haskell имеет такую возможность, хотя взаимодействие с Qt/qmake и вашим процессом сборки с ghc может потребовать небольшой хитрости для работы:

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

Есть также проект под названием HaskellDirect, который кажется похожим на вашу цель:

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

6
ответ дан 4 December 2019 в 00:59
поделиться

AutoCAD использует AutoLisp , поэтому я предлагаю Lisp.

2
ответ дан 4 December 2019 в 00:59
поделиться

Я бы хотел проверить qtHaskell и сделать все это на Haskell. Мое мнение основано на замечательном успехе Дона Стюарта в создании xmonad на Haskell .

2
ответ дан 4 December 2019 в 00:59
поделиться

Lisp и Haskell - отличные функциональные языки, но если мы рассмотрим простоту связывания кода C / C ++ вместе с языком, я бы рекомендовал lua.

Сразу же привязать функции C к lua ​​чрезвычайно просто, интерпретатор - это сверхкомпактная и простая в сборке библиотека, он является одним из самых быстрых языков сценариев, а с luabind вы можете легко привязать классы C ++, создание экземпляров шаблонов и т. д. В прошлом мне приходилось делать привязки для множества языков сценариев, и я никогда не находил более простого, чем lua. Он также поддерживается с помощью swig, если вы предпочитаете связывать вещи через swig, что позволит вашему приложению поддерживать несколько языков сценариев.

С чисто языковой точки зрения аспект метафункции / метапрограммирования lua (сравнимый с lisp) позволяет очень легко поддерживать все виды парадигм программирования, хотя я лично считаю, что он лучше всего подходит для функционального программирования. Он чрезвычайно настраиваемый и хорошо подходит для встроенного использования.

Однако, поскольку вы уже используете qt, qtHaskell также может быть хорошим выбором.

1
ответ дан 4 December 2019 в 00:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: