You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
sicp-all-tasks/sicp/3_002e2

23 lines
858 B

Exercise 3.2: In software-testing applications,
it is useful to be able to count the number of times a given procedure is
called during the course of a computation. Write a procedure
make-monitored that takes as input a procedure, f, that itself
takes one input. The result returned by make-monitored is a third
procedure, say mf, that keeps track of the number of times it has been
called by maintaining an internal counter. If the input to mf is the
special symbol how-many-calls?, then mf returns the value of the
counter. If the input is the special symbol reset-count, then mf
resets the counter to zero. For any other input, mf returns the result
of calling f on that input and increments the counter. For instance, we
could make a monitored version of the sqrt procedure:
(define s (make-monitored sqrt))
(s 100)
10
(s 'how-many-calls?)
1