Можна виконати деякі функціональні програми з мовою Lua. Дійсно, Луа - мова мулі-парадигми; Вікіпедія стверджує, що це "сценарій, імператив, функціонал, об'єктно-орієнтована, заснована на прототипі" мова. Мова не застосовує єдиної парадигми, але натомість є досить гнучкою, що дозволяє програмісту реалізувати будь-яку парадигму, застосовну до ситуації. На це вплинула схема.
Особливості Lua включають в себе першокласні функції , лексичне обстеження та закриття та супроводи , які корисні для функціонального програмування. Ви можете бачити, як ці функції використовуються на вікі користувачів Lua, на якій є сторінка, присвячена функціональному програмуванню . Я також натрапив на цей проект Google Code , але не використовував його (він, як стверджує, на нього впливає Haskell, інша мова, яку ви згадали).
eLua - це реалізація, яка доступна, налаштована для декількох плат розробок для архітектур ARM7TMDI, Cortex-M3, ARM966E-S та AVR32 і є відкритим кодом, щоб ви могли налаштувати її для власної платформи. Lua реалізований в ANSI C, і все джерело важить менше 200 кБ, тому ви повинні мати можливість створити його для більшості платформ із компілятором C. Рекомендується принаймні 128 кб Flash та 32 кб оперативної пам’яті. Я зараз працюю над портом PIC32 (все ще перебуваю на етапі "Отримати дошку PIC32").
Чудова річ у Lua полягає в тому, що вона була розроблена як клейова мова, тому писати розширення на C дуже просто (наприклад, переривання тощо), і використовувати динамічні, інтерпретовані функції мови, щоб робити це швидко розвиток у логіці програми.
Lua не є суто функціональною мовою, але ви можете робити багато функціональних програмувань на ній, це швидко і мало ( порівняно з іншими мовами сценаріїв ), і вам не потрібно переробляти свій пристрій, щоб спробувати програму. Є навіть інтерактивний перекладач!