我试图在drracket上运行此命令:
(define #t #f)
我收到以下错误信息:
define: bad syntax in: #t
我想知道导致该错误的原因是什么,以及为什么我可以这样做:(define + 12)
而不是这个。
非常感谢!
答案 0 :(得分:4)
(define <variable> <expression>)
A variable is a special kind of identifier和the format of identifiers is described here。从描述中可以看出,#t
(更常见的是,以#
开头的任何内容)都不是标识符。
答案 1 :(得分:0)
define
期望一个标识符作为它的第一个参数。在这种情况下,您提供的#t
计算结果为布尔值true。因此bad syntax
错误消息。
答案 2 :(得分:-2)
define
的第一个参数必须是符号。 +
是一个符号。 foo
是一个符号。 #t
是#t,而不是符号。 1
不是符号。