#lang sicp
(define (make-accumulator sum)
(lambda (x)
(begin
;修改环境变量中的值
(set! sum (+ sum x))
sum)))
(define A (make-accumulator 5))
(A 10)
(A 10)
(define (make-monitored f)
(let ((count 0))
(lambda (in)
(cond
((eq? in 'how-many-calls? ) count)
((eq? in 'reset-count) (set! count 0))
(else
(begin
(set! count (+ count 1))
(f in)))))))
(define s (make-monitored sqrt))
(s 100)
(s 'how-many-calls?)
scheme set使过程带有局部状态
最新推荐文章于 2024-08-17 13:39:19 发布