Es posible hacer una programación funcional con el lenguaje Lua. Realmente, Lua es un lenguaje de paradigmas múltiples; Wikipedia afirma que es un lenguaje 'scripting, imperativo, funcional, orientado a objetos y basado en prototipos'. El lenguaje no aplica un solo paradigma, sino que es lo suficientemente flexible como para permitir que el programador implemente cualquier paradigma que sea aplicable a la situación. Ha sido influenciado por Scheme.
Las características de Lua incluyen funciones de primera clase , alcance léxico y cierres y corutinas , que son útiles para la programación funcional. Puede ver cómo se utilizan estas funciones en el wiki de usuarios de Lua, que tiene una página dedicada a la programación funcional . También me encontré con este proyecto de Google Code , pero no lo he usado (afirma estar influenciado por Haskell, otro idioma que mencionaste).
eLua es una implementación que está disponible configurada para varias placas de desarrollo para las arquitecturas ARM7TMDI, Cortex-M3, ARM966E-S y AVR32, y es de código abierto para que pueda configurarla para su propia plataforma. Lua se implementa en ANSI C y toda la fuente pesa menos de 200kB, por lo que debería poder compilarla para la mayoría de las plataformas con un compilador de C. Se recomienda al menos 128k de Flash y 32k de RAM. Estoy trabajando en un puerto PIC32 para él (todavía en la etapa 'Obtener la placa PIC32') en este momento.
Lo mejor de Lua es que fue diseñado como un lenguaje de pegamento, por lo que es muy fácil escribir extensiones C para las cosas que deben ser rápidas (como interrupciones, etc.) y usar las características dinámicas e interpretadas del lenguaje para hacerlo rápido desarrollo en la lógica del programa.
Lua no es un lenguaje puramente funcional, pero puede hacer mucha programación funcional en él, es rápido y pequeño (en comparación con otros lenguajes de secuencias de comandos ), y no necesita volver a actualizar su dispositivo para probar un programa. ¡Incluso hay un intérprete interactivo!