Jscheme或lisp!!比较性格
如何检查列表的第一个元素是否等于某个字符 我试过这个代码,但没有成功Jscheme或lisp!!比较性格,lisp,Lisp,如何检查列表的第一个元素是否等于某个字符 我试过这个代码,但没有成功 (= (car lis) 'f) 有什么想法吗?在Common lisp中,您使用eq表示相等 (eql (car list) #\f) 在Common lisp中,使用eq表示相等 (eql (car list) #\f) 在Lisp中,=用于数值比较,而通用比较运算符是equal的不同变体(在CL中有四种类型:eq用于指针比较,eql用于原子比较,equal用于结构比较和equalp,类似于带字符串排序的equal,
(= (car lis) 'f)
有什么想法吗?在Common lisp中,您使用
eq
表示相等
(eql (car list) #\f)
在Common lisp中,使用
eq
表示相等
(eql (car list) #\f)
在Lisp中,
=
用于数值比较,而通用比较运算符是equal的不同变体(在CL中有四种类型:eq
用于指针比较,eql
用于原子比较,equal
用于结构比较和equalp
,类似于带字符串排序的equal
,请参见:).Lisp=
中的用于数值比较,而通用比较运算符是equal的不同变体
(在CL中有四种类型:eq
用于指针比较,eql
用于原子比较,equal
用于结构比较和equalp
,就像equal
带有字符串排序-请参见:)。Clojure(=(第一个列表)\f)
你真的意思是“字符”,还是你真正的意思“symbol”?它们通常不是一回事;'f
是“symbolf
”,而\f
是“characterf
”(至少在Common Lisp中是这样)。你通常希望以不同的方式比较、存储和处理它们。Clojure(=(第一个列表)\f)
你真的意思是“character”,还是你真正的意思symbol”?它们通常不是同一件事;'f
是“symbolf
”,而\f
是“characterf
”(至少在公共Lisp中是这样)。您通常希望以不同的方式比较、存储和处理它们。我怀疑提问者实际上指的是“symbol”,而不是“character”“。但是,在这两种情况下都不是一个合适的相等比较器。eq
对字符没有有效的定义。请改用eql
。我怀疑提问者实际上是指“符号”,而不是“字符”.但是,在这两种情况下都不是合适的相等比较器。eq
对于字符没有有效的定义。请改用eql
。