发布
社区首页 >问答首页 >MIT方案:未指定的返回值错误

MIT方案:未指定的返回值错误
EN

Stack Overflow用户
提问于 2017-12-28 06:16:12
回答 1查看 1.2K关注 0票数 0

MIT方案:我正在编写一个函数来计算斐波那契数列的第n项(SICP的第1.2.2节),但是我得到了错误:未指定的返回值

代码语言:javascript
代码运行次数:0
复制
(define (fib n) (
     define (fib-iter a b count) (
            if (= count n) a
            (fib-iter b (+ a b) (+ count 1)))
     (fib-iter 0 1 1))
)

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-28 07:01:45

您的辅助函数fib-iter在末尾缺少一个结束括号,但为fib添加了一个额外的结束括号。结果,行(fib-iter 0 1 1)被包含在fib-iter中,并且fib最终没有包含要实际求值和返回的表达式,因此出现了错误... no expression in body ...

这是你想要的:

代码语言:javascript
代码运行次数:0
复制
(define (fib n)
  (define (fib-iter a b count)
    (if (= count n)
        a
        (fib-iter b (+ a b) (+ count 1))))    ; 1 closing bracket added here
  (fib-iter 0 1 1))                           ; 1 closing bracket removed here

使用一些与圆括号匹配的编辑器可能会对您有所帮助。例如,如果光标在所述括号的开始或结束处处于活动状态,Dr.racket将突出显示包含在一组括号中的函数体。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47999278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档