Я попробовал следующую функцию высшего порядка из SICP :
(defun average-damp(f)
(lambda (x) (average x (f x))))
(defun average(x y)
(/ (+ x y) 2.0))
(defun square(x)
(* x x))
((average-damp square) 10)
А именно, учитывая функцию f, мы рассматриваем функцию, значение которой в x равносреднее значение x и f (x).
Но при запуске он сообщает об ошибке:
progn: Invalid function: (average-damp square)
Я убедился, что square
и average
работают правильно. Вот оригинальная версия average-damp
на схеме:
(define (average-damp f)
(lambda (x) (average x (f x))))
В чем проблема?