首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MIT-Scheme中的条件表达式中写入stdout?

如何在MIT-Scheme中的条件表达式中写入stdout?
EN

Stack Overflow用户
提问于 2015-07-10 20:21:26
回答 1查看 358关注 0票数 0

下面是一个尝试根据变量的值将不同的字符串写入stdout的示例:

代码语言:javascript
复制
(let ((x 1))
(cond ((< x 2)  
         (display "hooray"))
       (else 
         (display "bummer"))) 
)

注意,正确的字符串确实会被写入,但我们也会得到一个“未指定的返回值”。

我的理解是,这是因为解释器试图将子句的“后继表达式”的值作为条件值返回,但是“显示”表达式不返回任何值。

有更好的方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-10 21:17:54

如果这个表达式只根据其效果(打印消息)进行计算,那么您应该显式地返回一个值(任何值!)作为let表单的结果:

代码语言:javascript
复制
(let ((x 1))
  (cond ((< x 2)  
         (display "hooray")
         (newline))
        (else 
         (display "bummer")
         (newline)))
  'ok)

现在我们会得到:

代码语言:javascript
复制
hooray
'ok
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31349638

复制
相关文章

相似问题

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