如何清除Scheme中的内部列表?

时间:2008-11-21 04:46:02

标签: scheme

我有以下代码,并希望添加一条清除消息,从内部列表中删除所有存储的数字。我该怎么做?

     (define (make-stat)
      (let ((values (list)))
        (lambda (op . args)
          (cond ((eq? op 'add)            
                 (set! values (cons (car args) values)))
                ((eq? op 'mean)
                 (if (null? values) 
                     (error "can't take mean of empty data set")
                     (mean values)))
                ((eq? op 'variance)
                 (if (null? values)
                     (error "can't take variance of empty data set")
                     (variance values)))
                (else (error "unknown op" op))))))

1 个答案:

答案 0 :(得分:2)

确实

((eq? op 'clear)
 (set! values '()))

不行吗?我想我不明白你的绊脚石在哪里。