2016-04-06 21 views
1

zaman raket x saniye/dakika/saat bazı değişken kümesidir buölçüm süresi

while time left 
    do something 

gibi bir şey uygulamak için bir yolu var mı?

Ben

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

gibi zaman taklit etmek için bazı sabit kullanabilirsiniz ama sürekli izlemeyi deneyin bana vb bir saat,

+1

https://docs.racket-lang.org/reference/time.html adresine bir göz atın. –

cevap

3

verecek olanı deneyerek olurdu:

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

Sonra

(loop (+ (current-seconds) (* 60 60))) -- do it for one hour 
ile bu çağırabilirsiniz

Sadece <do something>'u düzenli olarak yapmak istiyorsanız, ancak bunu <do something> içinde% 100 CPU kullanımı yapmak istemiyorsanız, bunu gerçekleştirmek için (sleep <secs>)'u ekleyebilirsiniz.