CircuitScheme is quite a nice implementation of a small, but very Scheme-like language. It's a small subset of a full Scheme, but all the crucial parts are present and it's easy to add more. That, in itself, is one of the hallmarks of the Lisp family of languages: it's easy to extend the language in the language itself. This is a big reason for the evolution that Lisp underwent and the diversity of dialects that were created.
So one path forward is to extend the language to be more appropriate for microcontroller work, taking advantage of the CircuitPython substrate.
Another area of exploration is to improve the REPL. It's very basic at the moment, and more appropriate for its use as a file loader: the repl
function gets used by load
to essentially type in code from a file. It needs more editing capabilities.
UPDATE: CircutiScheme has an expanded REPL interface now. See this guide for details. TL;DR it gives you what you'd expect for REPL editing.
A related area is the addition of debugging capabilities.
Finally, more wrappers are needed to support more hardware. As we have seen, it's a fairly simple matter to create a wrapper that imports the CircuitPython device driver and exposes the functions required to let it be used from CircuitScheme.
In Closing
CircuitScheme is interesting not only because it's a Lisp running comfortably on SAMD51 boards, but because it does so within the CircuitPython environment, leveraging the benefits that provides.
Page last edited March 08, 2024
Text editor powered by tinymce.