Możliwe jest programowanie funkcjonalne w języku Lua. Naprawdę, Lua jest językiem paradygmatu; Wikipedia twierdzi, że jest to język „skryptowy, imperatywny, funkcjonalny, obiektowy, oparty na prototypach”. Język nie wymusza pojedynczego paradygmatu, ale jest wystarczająco elastyczny, aby pozwolić programiście na wdrożenie dowolnego paradygmatu mającego zastosowanie w danej sytuacji. Wpływ na to miał Schemat.
Funkcje Luy obejmują najwyższej klasy funkcje , zakresy leksykalne oraz zamknięcia i coroutines , które są przydatne do programowania funkcjonalnego. Możesz zobaczyć, jak te funkcje są używane na wiki użytkowników Lua, która ma stronę poświęconą programowaniu funkcjonalnemu . Natknąłem się również na ten projekt Google Code , ale go nie użyłem (twierdzi, że ma na niego wpływ Haskell, inny język, o którym wspomniałeś).
eLua jest implementacją dostępną skonfigurowaną dla wielu płyt programistycznych dla architektur ARM7TMDI, Cortex-M3, ARM966E-S i AVR32, i jest open source, dzięki czemu możesz skonfigurować ją dla własnej platformy. Lua jest zaimplementowana w ANSI C, a całe źródło waży poniżej 200kB, więc powinieneś być w stanie zbudować ją dla większości platform z kompilatorem C. Zalecane jest co najmniej 128 kB Flasha i 32 kB RAM. Obecnie pracuję nad portem PIC32 (wciąż na etapie „Pobierz kartę PIC32”).
Wspaniałą rzeczą w Lua jest to, że został zaprojektowany jako język kleju, więc bardzo łatwo jest pisać rozszerzenia C dla rzeczy, które muszą być szybkie (takie jak przerwania itp.), I używać dynamicznych, interpretowanych funkcji języka, aby robić szybkie rozwój w logice programu.
Lua nie jest językiem czysto funkcjonalnym, ale można w nim wykonać wiele funkcjonalnych programów, jest szybki i mały (w porównaniu do innych języków skryptowych ) i nie trzeba ponownie instalować urządzenia, aby wypróbować program. Jest nawet interaktywny tłumacz!