在方案中,有没有办法检查数据类型是否是符号?
就像是
(define symbol-test
(lambda (s)
(if (symbol? s)
#t
#f)))
所以如果你给喜欢(symbol-test 'x)
应该是#t
。(即使x
未定义)而且 this (symbol-test 3)
or (symbol-test '(1 2 3))
should be #f
。
在方案中,有没有办法检查数据类型是否是符号?
就像是
(define symbol-test
(lambda (s)
(if (symbol? s)
#t
#f)))
所以如果你给喜欢(symbol-test 'x)
应该是#t
。(即使x
未定义)而且 this (symbol-test 3)
or (symbol-test '(1 2 3))
should be #f
。
你实际上就在那里。symbol?
是 R5RS 中的标准函数。
引用标准
程序:符号?obj 如果 obj 是符号,则返回 #t,否则返回 #f。
(symbol? 'foo) ==> #t
(symbol? (car '(a b))) ==> #t
(symbol? "bar") ==> #f
(symbol? 'nil) ==> #t
(symbol? '()) ==> #f
(symbol? #f) ==> #f
在相关说明中,我会使用
(define symbol-test symbol?)
而不是您当前的实现,它更干净,更容易理解。