计算机程序构造和解释题解

第3章

3.1 一个累加器是一个过程,返复用数值参数调用它,就会使它的各个参数累加到一个和数中。每次调用时累加器将返回当前的累加和。请写出一个生成累加器的过程make-accumulator,它所生成的每个累加器维持着一个独立的和。送给make-accumulator的输入描述有送和数的初始值。

;;全局变量的写法
(def count-sum (atom 0))
(defn make-accumulator
  "累加器"
  [count]
  (reset! count-sum (+ @count-sum count)))

;;局部变量的写法?

 3.2 在对应用程序做软件测试时,能够统计出在计算过程中某个给定过程被调用的次数常常很有用处。请写出一个过程make-monitored,这以一个过程F作为输入,该过程本身有一个输入。make-monitored返回的结果是第三个过程,比如说mf,它将用一个内部计数器维持着自己被调用的次数。如果mf的输入是特殊符号how-many-calss?,那么mf就返回内部计数器的值,如果输入是特殊符号reset-count,那么mf就将计数器重新设置为0,对于任何其他输入,mf将返回过程f应用这一输入的结果,并将内部计数器加1。

 

 

 

 

你可能感兴趣的:(计算机)