方案中的嵌套条件和未指定的 return 值

Nested conditionals and unspecified return value in scheme

我正在尝试编写一个函数,将三个参数中的两个最大值相加。

(定义(a b c的总和)(cond<br> ((和 (>= a b) (>= a c)) (如果 (>= b c) (+ a b) (+ a c))) ((和 (>= b a) (>= b c)) (如果 (>= a c) (+ a b) (+ b c))) ((和 (>= c a) (>= c b)) (如果 (>= a b) (+ a c) (+ b c)))) )

每当我使用该功能时,我都会收到消息 "unspecified return value"。我不知道这里有什么不起作用。即:

(sumhighest 1 2 3)

编辑:有些人指出这段代码对他们有用。我正在使用解释器的 mit-scheme 实现。它在 Ubuntu 18.04 上名为 mit-scheme 的包下。

这可能取决于实现,但正如评论中所述,它对我们中的一些人有效。在没有更多上下文的情况下,我建议您将最后一个条件 (and (>= c a) (>= c b)) 替换为 else。或者切换到不同的解释器:)