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)) |