You can write programs even for 8-bit microcontrollers in Scheme. Here is very simple one - it just blinks. Try it:
$ guix shell
$ make
$ # avrdude ...
See it blinks...
*.hex | |
*.s | |
*.elf |
(define pin-L | |
(output 13)) | |
(forever | |
(lambda () | |
(toggle pin-L) | |
(pause 3000))) |
blink.elf: blink.ms | |
microscheme -va -m UNO blink.ms | |
.PHONY: clean | |
clean: | |
rm -f blink.{hex,s,elf} |
(use-modules | |
(gnu packages avr) | |
(gnu packages avr-xyz) | |
(gnu packages base) | |
(gnu packages flashing-tools) | |
(gnu packages llvm) | |
(guix profiles) | |
(guix packages)) | |
(packages->manifest | |
(list | |
(package | |
(inherit microscheme) | |
(inputs | |
(modify-inputs | |
(package-inputs microscheme) | |
(delete clang)))) ; not needed - save bandwidth a bit | |
(make-avr-toolchain) | |
gnu-make | |
avrdude)) |