#!r6rs (import (rnrs) (srfi :27)) (define zun "ズン") (define doko "ドコ") (define kiyoshi "キ・ヨ・シ!") (define (zun? o) (string=? zun o)) (define (doko? o) (string=? doko o)) (define (kiyoshi! o) (display o) (display kiyoshi) (exit 0)) (define zun&doko (vector zun doko)) (define (zundoko-generator) (vector-ref zun&doko (random-integer 2))) (define init-state 0) (define (gen-next n) (lambda (o) (display o) n)) (define ->init (gen-next init-state)) (define states `#((,zun? ,(gen-next 1) ,->init) (,zun? ,(gen-next 2) ,->init) (,zun? ,(gen-next 3) ,->init) (,zun? ,(gen-next 4) ,->init) (,doko? ,kiyoshi! ,(gen-next 4)) ;; more than 4 zun, loop it )) (random-source-randomize! default-random-source) (let loop ((ns init-state)) (let ((token (zundoko-generator)) (state (vector-ref states ns))) (if ((car state) token) (loop ((cadr state) token)) (loop ((caddr state) token)))))普通に4回と1回を数えた方がすっきりするような気もしないでもない。
Let's start Scheme
▼
2016-03-19
ズンドコキヨシ
風邪(と思われる)で1週間寝込んでいたのだが、体調がほぼ戻ってきた。Twitter等でズンドコキヨシなるものを見かけたので、1週間ぶりにリハビリを兼ねて書いてみた。(1週間もコード書かないと鈍るよね?)
No comments:
Post a Comment