トップ «前の日記(2013-05-02(Thu)) 最新 次の日記(2013-05-04(Sat))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2013-05-03(Fri) 伸び縮み

1から始まらないfizzbuzz

なんとかできた。
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

xdpyinfo(1)

Xの解像度、以外にも色々確認できる。らしい。
とりあえずは Raspbian にてアナログ出力してみた例。


リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。

index.htmlは ここから。