Comment detail

n日後を返す関数を返す関数 (Nested Flatten)
やっぱposixだけなのかな?
1
2
3
4
5
6
7
8
9
(define (n-days-later n)
  (lambda (sys-tm-time) (sys-localtime (+ (sys-mktime sys-tm-time) (* n 3600 24)))))
(let ((now (sys-localtime (sys-time)))
      (fmt "%Y/%m/%d %H:%M:%S"))
  (print
   (list (sys-strftime fmt now)
         (n-days-later 3)
         (sys-strftime fmt ((n-days-later 3) now)))))
;; (2007/07/21 20:12:15 #<closure (n-days-later n-days-later)> 2007/07/24 20:12:15)
日付関係ならsrfi-19もあります。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
(use srfi-19)

(define (n-days-later n)
  (lambda (date) (julian-day->date (+ (date->julian-day date) n))))

(let ((now (current-date)))
  (list (date->string (current-date))
        (date->string ((n-days-later 5) (current-date)))))

;; => ("Sat Jul 21 07:07:52-1000 2007" "Thu Jul 26 07:07:52-1000 2007")

Index

Feed

Other

Link

Pathtraq

loading...