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