我很好奇Scheme中define
的返回值。所以我在Racket中写了以下几行
#lang r5rs
(display (define a 3))
并获得错误
define: not allowed in an expression context in: (define a 3)
我有两个问题:
define
没有返回值?define
不是表达。这是一个程序结构。是否只有表达式具有返回值,而其他表单没有?答案 0 :(得分:2)
"If a tree falls in a forest and no one is around to hear it, does it make a sound?"
在可以有意义地获得返回值的任何上下文中使用define
无效。所以它是否具有返回值是没有意义的;你将永远无法观察它。
答案 1 :(得分:0)
在Scheme中,define
只能用于two places:
这两个地方都没有相关的“回报价值”。