clean.scm

30分プログラム、その28。一回休んでしまった。

今回は、id:selvaggioあたりと話した掃除当番を割りふるプログラム。

ルール

  • 掃除当番は毎週交代
  • 一度に三人づつ
  • 2007/4/11より開始
$ gosh clean.scm
(Alice Bob Charry)
 
# 一週間後
$ gosh clean.scm
(David Eva Fred)
(use srfi-1)
(use srfi-19)
 
(define member
  (apply circular-list '(Alice Bob Charry
			 David Eva Fred
			 George Henly Iwan
			 Jack  Kent Linda
			 Mzp   Nate Oliver)))
 
(define start-date (make-date 0 0 0 0 11 4 2007 9))
 
(define (week-diff lhs rhs)
  (- (date-week-number lhs 0) 
     (date-week-number rhs 0)))
 
(define (get-member week-num)
  (take (drop member (* week-num 3)) 3))
 
(define (main args)
  (print (get-member (week-diff (current-date) start-date))))
  • 初めて循環リストを使った
  • 本当はメール発信までやりたかったんだけど、それは無理