首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从方案中的函数返回值

如何从方案中的函数返回值
EN

Stack Overflow用户
提问于 2020-04-18 07:48:38
回答 1查看 82关注 0票数 0

我正在运行以下代码:

代码语言:javascript
复制
(define (myadd x y)
    (+ x y)
    (display (+ x y))
)

(define (mymul x y)
    (* x y)
    (display (* x y))
)

(apply myadd '(3 (apply mymul '(3 4)))

当我运行(apply myadd '(3 (apply mymul '(3 4)))时,我试图得到答案12,但我得到了以下错误:

错误:+:需要编号,但got (apply mymul (quote (3 4) apply,(anon),+

EN

回答 1

Stack Overflow用户

发布于 2020-04-18 07:54:07

函数返回最后一个表达式的值。因此,您需要使用计算来结束函数。将display调用放在前面。

代码语言:javascript
复制
(define (myadd x y)
    (display (+ x y))
    (+ x y)
)

而且,您以后没有正确地调用这些函数。它应该是:

代码语言:javascript
复制
(myadd 3 (mymul 3 4))

如果你想使用apply,你需要让list包含调用函数的结果。如果你引用了整个列表,它只是一个字面量,没有任何东西被调用。

代码语言:javascript
复制
(apply myadd (list 3 (apply mymul '(3 4)))
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61282465

复制
相关文章

相似问题

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