Functional programming on Arduino Uno

Hi all,
The Arduino architecture is hard for functional programming, with following reason. :disappointed_relieved:

  • We can’t use smart pointer on the Harvard architecture.
  • 16-bit address bus is bad for smart pointer.
  • 2 kB memory is too small for GC or malloc heap.
  • We can’t construct any dynamics values without malloc heap.

However, ATS2 language http://www.ats-lang.org/ is easy to write code for the architecture, and the ATS2 functional program running on it is safe using dependent type and linear type. :astonished: Also ATS2’s linear type realizes safe programming without any GC and any malloc. We believe this ATS2 characteristics is good to design IoT devices http://fpiot.metasepi.org/. $)

About the demo application, please see following links.