【发布时间】:2019-06-30 00:16:52
【问题描述】:
我正在阅读 Structure and Interpretation of Computer Programming 这本书,它使用了 Scheme,我刚刚完成了关于递归的部分内容。我为练习 1.11 编写了一个程序:
函数 f 由以下规则定义:f(n) = n 如果 n 3. 编写一个通过递归过程计算 f 的过程。编写一个通过迭代过程计算 f 的过程。
我在repl.it 编写了代码,当我使用输入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)
【问题讨论】:
-
这更像是一个语法问题,所以我认为“算法”标签在这里不合适。
-
@ElliottSmith 重新标记
标签: function syntax compiler-errors functional-programming scheme