É possível fazer alguma programação funcional com a linguagem Lua. Realmente, Lua é uma linguagem de paradigma mútuo; A Wikipedia afirma que é uma linguagem de 'script, imperativa, funcional, orientada a objetos e baseada em protótipo'. A linguagem não impõe um único paradigma, mas é flexível o suficiente para permitir que o programador implemente qualquer paradigma aplicável à situação. Foi influenciado pelo Scheme.
Os recursos de Lua incluem funções de primeira classe , escopo lexical e fechamentos e corotinas , úteis para programação funcional. Você pode ver como esses recursos são usados no wiki de usuários do Lua, que possui uma página dedicada à programação funcional . Também me deparei com esse projeto do Google Code , mas não o usei (ele afirma ter sido influenciado pelo Haskell, outro idioma que você mencionou).
eLua é uma implementação disponível configurada para várias placas de desenvolvimento para as arquiteturas ARM7TMDI, Cortex-M3, ARM966E-S e AVR32, e é de código aberto para que você possa configurá-lo para sua própria plataforma. Lua é implementada no ANSI C e a fonte inteira pesa menos de 200kB, portanto, você poderá construí-lo para a maioria das plataformas com um compilador C. Recomenda-se pelo menos 128k de Flash e 32k de RAM. No momento, estou trabalhando em uma porta PIC32 (ainda no estágio 'Get the PIC32 board').
O melhor de Lua é que ele foi projetado como uma linguagem de cola, por isso é muito fácil escrever extensões C para as coisas que precisam ser rápidas (como interrupções etc.) e usar os recursos dinâmicos e interpretados da linguagem para executar rapidamente desenvolvimento na lógica do programa.
Lua não é uma linguagem puramente funcional, mas você pode fazer muita programação funcional, é rápida e pequena (em comparação com outras linguagens de script ) e não precisa atualizar o dispositivo novamente para experimentar um programa. Existe até um intérprete interativo!