19 lines
552 B
Plaintext
19 lines
552 B
Plaintext
(define (bump-value)
|
|
(when (> value 1)
|
|
(set! count (1+ count))
|
|
(set! value (if (even? value) (/ value 2) (1+ (* 3 value))))))
|
|
|
|
(define (env-show name envs )
|
|
(write name)
|
|
(for ((env envs)) (write (format "%4a" (eval name env))))
|
|
(writeln))
|
|
|
|
(define (task (envnum 12))
|
|
(define envs (for/list ((i envnum)) (environment-new `((value ,(1+ i)) (count 0)))))
|
|
(env-show 'value envs)
|
|
(while
|
|
(any (curry (lambda ( n env) (!= 1 (eval n env))) 'value) envs)
|
|
(for/list ((env envs)) (eval '(bump-value) env))
|
|
(env-show 'value envs))
|
|
(env-show 'count envs))
|