Возможно сделать функциональное программирование на языке Lua. На самом деле, Lua - это язык многопарадигмы; Википедия утверждает, что это «скриптовый, императивный, функциональный, объектно-ориентированный, основанный на прототипах» язык. Язык не обеспечивает единой парадигмы, но достаточно гибок, чтобы позволить программисту реализовать любую парадигму, применимую к ситуации. Это было под влиянием Схемы.
Возможности Lua включают в себя первоклассные функции , лексическую область видимости, замыкания и сопрограммы , которые полезны для функционального программирования. Вы можете увидеть, как эти функции используются на вики-сайте Lua для пользователей, где есть страница, посвященная функциональному программированию . Я также сталкивался с этим проектом Google Code , но я не использовал его (он утверждает, что находится под влиянием Haskell, другого языка, который вы упомянули).
eLua - это реализация, которая настроена для ряда плат разработки для архитектур ARM7TMDI, Cortex-M3, ARM966E-S и AVR32 и имеет открытый исходный код, так что вы можете настроить ее для своей собственной платформы. Lua реализован на ANSI C, и весь исходный код весит менее 200 КБ, поэтому вы должны иметь возможность собрать его для большинства платформ с компилятором C. Рекомендуется не менее 128 КБ флэш-памяти и 32 КБ ОЗУ. Я работаю над портом PIC32 для него (все еще на стадии «Получить плату PIC32», хотя) в данный момент.
Самое замечательное в Lua состоит в том, что он был разработан как склеивающий язык, поэтому очень легко писать расширения C для вещей, которые должны быть быстрыми (например, прерывания и т. Д.), И использовать динамические, интерпретируемые функции языка для быстрой работы. развитие в логике программы.
Lua не является чисто функциональным языком, но вы можете выполнять в нем много функционального программирования, он быстрый и небольшой ( по сравнению с другими языками сценариев ), и вам не нужно перепрошивать свое устройство, чтобы опробовать программу. Там даже интерактивный переводчик!