Количество вызовов процедуры
    При тестировании программ удобно иметь возможность подсчитывать, сколько раз за время вычислений была вызвана та или иная процедура. Напишите процедуру 
    make-monitored
    , принимающую в качестве параметра процедуру 
    f
    , которая сама по себе принимает один входной параметр. Результат, возвращаемый 
    make-monitored
     — третья процедура, назовем ее 
    mf
    , которая подсчитывает, сколько раз она была вызвана, при помощи внутреннего счетчика. Если на входе 
    mf
     получает специальный символ 
    how-many-calls?
    , она возвращает значение счетчика. Если же на вход подается специальный символ 
    reset-count, mf
     обнуляет счетчик. Для любого другого параметра 
    mf
     возвращает результат вызова 
    f
     с этим параметром и увеличивает счетчик. Например, можно было бы сделать отслеживаемую версию процедуры 
    sqrt
    :
(define s (make-monitored sqrt))
(s 100)
10
(s 'how-many-calls?)
1Комментарии отсутствуют.