Я изучаю книгу Структура и интерпретация компьютерного программирования , в которой используется схема, и я только что прошел через рекурсию.Я написал программу для упражнения 1.11:
Функция f определяется правилом, что f (n) = n, если n <3, и f (n) = f (n - 1) + 2f.(n - 2) + 3f (n - 3), если n> 3. Напишите процедуру, которая вычисляет f с помощью рекурсивного процесса.Напишите процедуру, которая вычисляет f с помощью итеративного процесса.
Я написал код на repl.it , и когда я запускаю procdure с помощью ввода 2
, онвыдает ошибку: Error: 2 is not a function [fRecurse, (anon)]
.Может кто-нибудь объяснить мне, что это значит и как я могу это исправить?Почему он ожидает, что мой ввод будет функцией?
Код:
(define (fRecurse n)(
(cond ((< n 3) n)
((>= n 3)
(+ (procRecurse (- n 1))
(* 2 (f (- fRecurse 2)))
(* 3 (f (- fRecurse 3))))))))
(fRecurse 2)