> (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
>
使用引号时是否可以将+识别为程序?
答案 0 :(得分:1)
列表,向量,符号,字符串,布尔值和数字的优点是具有文字表示,而程序则没有。有人可能会争辩说,对于全局变量,甚至可能是全局模块绑定都是可行的,因为它们可以在宏扩展时确定,但是因为我们没有最好的方法来做你想要的就是使用quasiquote来评估一些部分:
if(mail($to,$subject,$body)){
mail($email,"Thanks!!","Thank you very much for registering!!!")
}
请注意,在评估`(,+ 1 2 3) ; ==> (#<procedure:+> 1 2 3)
后,此列表中没有与符号+
关联的内容。还要知道符号+
是数据,不要与变量+
混淆。