> (procedure? +)
#t
> (procedure? (car '(+ 2 3)))
#f
> (list? '(+ 2 3))
#t
> (symbol? (car '(+ 2 3)))
#t
> (define someList (list + 2 3))
> someList
> '(#< procedure:+ > 2 3)
> (procedure? (car someList))
#t
>
使用引号时是否可以将+识别为一个过程?
列表,向量,符号,字符串,布尔值和数字的优点是具有文字表示,而过程则没有。有人可能会争辩说,有可能为全局变量甚至全局模块绑定使用字面表示,因为它们可以在宏扩展时确定,但是由于我们并不是执行所需操作的最佳方法是使用准引用进行求值一些部分:
`(,+ 1 2 3) ; ==> (#<procedure:+> 1 2 3)
请注意,在评估之后+
,此列表中没有与符号关联的任何内容+
。还知道符号+
是数据,不要与变量混淆+
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句