在计划中测量时间

时间:2016-04-06 15:34:26

标签: scheme racket

有没有办法实现类似这样的东西

while time left
  do something

其中时间是一些变量设置为球拍中的x秒/分钟/小时?

我可以使用some-constant来模拟时间,如

(define (loop time)
   (if (< time some-constant)
       ((do something)
       (loop (- time 1)))
       do-nothing))

但是我必须尝试看看常数会给我一个小时等等。

1 个答案:

答案 0 :(得分:3)

尝试以下方法:

(define (loop term-time)
  (when (<= (current-seconds) term-time)
        (begin <do something>
               (loop term-time))))

然后你可以用

调用它
(loop (+ (current-seconds) (* 60 60))) -- do it for one hour

如果您只想定期<do something>,但不希望以100%的CPU使用率执行,<do something>,您可以包含(sleep <secs>)来实现此目的。