在方案中定义

时间:2014-03-13 13:12:17

标签: scheme racket

我试图在drracket上运行此命令:

(define #t #f)

我收到以下错误信息:

define: bad syntax in: #t

我想知道导致该错误的原因是什么,以及为什么我可以这样做:(define + 12)而不是这个。

非常感谢!

3 个答案:

答案 0 :(得分:4)

syntax of define是:

(define <variable> <expression>)

A variable is a special kind of identifierthe format of identifiers is described here。从描述中可以看出,#t(更常见的是,以#开头的任何内容)都不是标识符。

答案 1 :(得分:0)

define期望一个标识符作为它的第一个参数。在这种情况下,您提供的#t计算结果为布尔值true。因此bad syntax错误消息。

答案 2 :(得分:-2)

define的第一个参数必须是符号。 +是一个符号。 foo是一个符号。 #t是#t,而不是符号。 1不是符号。