僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
なんとかできた。
fizzbuzz を実行する関数
を実行する前に、fizz と buzz の
循環リストを
必要なだけcdrさせる関数を実行する。
ようにするラッパーを書いてみた。
(define fizz '#0=(#f #f "fizz" . #0#)) (define buzz '#0=(#f #f #f #f "buzz" . #0#)) (define cdrnum (lambda (mylist num) (cond ((zero? num) mylist) ((> 0 num) mylist) (#t (cdrnum (cdr mylist) (- num 1)))))) (define fzlist (lambda (first last fz bz) (cond ((eq? (car fz) (car bz)) (display first))) (cond ((car fz) (display (car fz)))) (cond ((car bz) (display (car bz)))) (display '#\newline) (or (> (+ first 1) last) (fzlist (+ first 1) last (cdr fz) (cdr bz))))) (define fizzbuzz (lambda (first last f z) (cond ((zero? (mod (- first 1) 15)) (fzlist first last f z)) (#t (fzlist first last (cdrnum f (mod (- first 1) 15)) (cdrnum z (mod (- first 1) 15)))))))
(fizzbuzz 7 18 fizz buzz) 7 8 fizz buzz 11 fizz 13 14 fizzbuzz 16 17 fizz #t
Xの解像度、以外にも色々確認できる。らしい。
とりあえずは
Raspbian にてアナログ出力してみた例。
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。