Lisp и Haskell - отличные функциональные языки, но если мы рассмотрим простоту связывания кода C / C ++ вместе с языком, я бы порекомендовал lua.
Крайне просто связать функции C с lua сразу, интерпретатор очень компактен и прост в сборке, это один из самых быстрых скриптовых языков, а с luabind вы можете легко связатьКлассы C ++, создание шаблонов и т. Д. В прошлом мне приходилось делать привязки для многочисленных языков сценариев, и я никогда не находил такой простой, как lua.Он также поддерживается Swig, если вы предпочитаете связывать вещи с помощью Swig, что позволит вашему приложению поддерживать несколько языков сценариев.
С чисто языковой точки зрения, мета-особенность / метапрограммирование в lua (сравнимое с lisp) позволяет очень легко поддерживать все виды парадигм программирования, хотя лично я считаю, что он лучше всего подходит для функционального программирования.,Он чрезвычайно настраиваемый и хорошо подходит для встроенного использования.
Однако, так как вы уже используете qt, qtHaskell также может быть хорошим выбором для рассмотрения.