方案#无效错误
我尝试运行以下方案代码:
(define affiche-gagnant
(lambda (j1 j2 g1 g2)
(begin
(display "Le gagnant est : ")
(display
(cond ((> g1 g2) j1)
((< g1 g2) j2)
(else (begin (display "personne. ") (display j1) (display " et ") (display j2) (display " sont exaequos. "))))))))
但我得到以下输出:
Le gagnant est : personne. Alper et Ezgi sont exaequos. #<void>
#void
来自哪里?我该如何摆脱它?
I tried running the following scheme code:
(define affiche-gagnant
(lambda (j1 j2 g1 g2)
(begin
(display "Le gagnant est : ")
(display
(cond ((> g1 g2) j1)
((< g1 g2) j2)
(else (begin (display "personne. ") (display j1) (display " et ") (display j2) (display " sont exaequos. "))))))))
But I get the following output:
Le gagnant est : personne. Alper et Ezgi sont exaequos. #<void>
Where did the #void
come from? How do I get rid of it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
哎呀,答案错误。您有一个额外的显示器:
应该可以工作。
Oops, wrong answer. You have an extra display:
Should work.
在Scheme的某些实现中,任何不应该返回任何内容的函数(例如begin、define、set!)实际上返回一个特殊值
#
。显示这样的值是错误的。就你而言,这是一个额外的“显示”。In some implementations of Scheme, any function that shouldn't return anything (such as begin, define, set!) actually returns a special value
#<void>
. It is an error to display such a value. In your case, it was an extra "display".