为什么我的过程的参数出现“不是函数”错误?

乔达斯特

我正在阅读使用Scheme的《计算机编程的结构和解释》一书,而我仅涉及了递归的一部分。我编写了一个练习1.11的程序:

函数f由以下规则定义:如果n <3,则f(n)= n;如果n> 3,则f(n)= f(n-1)+ 2f(n-2)+ 3f(n-3)。编写一个通过递归过程计算f的过程。编写一个通过迭代过程计算f的过程。

我在repl.it编写了代码,当我使用输入运行procdure2,出现了错误: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)
克里斯蒂安·桑托斯

该错误是由于之前有一对额外的括号引起的(cond...)要解决此问题,我们只需删除多余的一对括号即可:

(define (fRecurse n)
  (cond ((< n 3) n)
      ((>= n 3) 
        (+ (fRecurse (- n 1))
           (* 2 (fRecurse (- n 2)))
           (* 3 (fRecurse (- n 3)))))))

(fRecurse 2)

我对您的示例进行了一些其他修复,以使其正常工作:

  • 更改ffRecurse
  • 更改procRecursefRecurse
  • 更改(* 2 (f (- fRecurse 2)))(* 2 (fRecurse (- n 2)))
  • 更改(* 3 (f (- fRecurse 3)))(* 3 (fRecurse (- n 3)))

查看更新的repl.it

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我的函数中的数组参数出现语法错误?

为什么我使用简单的哈希函数出现非法参数错误?

为什么我编写的函数出现“未定义的函数”错误?

为什么我的DataFrame点函数出现矩阵未对齐错误?

为什么我在这里出现错误“不是函数”?

为什么会出现“不是函数”错误?

为什么我的dataTables没有使用$ .each内部函数出现?

当我在Rust函数中注释类型时,为什么会出现错误“预期类型参数”?

当我在函数定义之后而不是之前调用函数(在函数中定义)的输出时,为什么会出现错误?

为什么 SSH 中的 -T 参数出现在 Ubuntu 文档中而不是终端/控制台中?

为什么会出现此错误?管道不是函数

为什么此代码出现错误“嗨不是函数”

为什么会出现错误TypeError:“ xyz”不是函数?

为什么会出现错误“ tf.fromPixels不是函数”?

为什么会出现“订阅不是函数”错误?

为什么我收到 onVideoSelect 不是函数的错误消息?

为什么我收到错误“button.addEventListener 不是函数”

为什么我在 LAG() 函数中出现语法错误?

为什么我在尝试访问内置类方法属性而不是相同的内置函数属性时出现错误

sql server 2014为什么在视图中而不是存储过程中出现代码错误

尽管我指定了函数参数的类型,为什么在Node Application中没有出现类型错误?

为什么在调用所述函数时,我的函数使用原始列表而不是我用作参数的副本?

为什么我在 .Net 中通过 npgsql 运行函数(存储过程)时出现异常?

为什么我导出的函数不是函数?

unitywebrequest 函数出现未知错误

Rails MiniTest,为什么这个过程不是成功而不是错误?

为什么我在 React 中的 map 函数给我一个错误?(...不是函数)

为什么我可以强制方法的`&self`参数而不是函数参数的引用移动语义?

当我运行我的传奇时,我出现此错误“错误:调用:参数[object Object]不是函数”