2012-02-19 46 views
0

我如何檢查是否列表的第一個元素是等於某些字符Jscheme或lisp!比較字符

我想這個代碼,但我沒有工作

(= (car lis) 'f) 

什麼想法?

+0

Clojure'(=(first list)\ f)' – Bill 2012-02-19 06:06:56

+0

你真的是指「性格」,還是你的意思是「符號」?他們通常不是一回事; 「f」是「符號f」,而「#\ f」是「字符f」(至少在Common Lisp中)。您通常希望以不同的方式比較,存儲和處理它們。 – Inaimathi 2012-02-19 17:30:57

回答

2

Common Lisp中使用eq平等

(eql (car list) #\f) 
+0

我懷疑提問者實際上是指「符號」,而不是「字符」。但是,在任何情況下都不是=合適的平等比較。 – Vatine 2012-02-19 09:34:37

+0

'eq'沒有對字符進行有效的定義。改用'eql'。 – 2012-02-19 12:17:20

4

在Lisp =用於數字比較,而通用的比較運營商的equal不同的變體(在CL有四個一:eq爲指針比較,用於比較原子的eql,用於比較結構的equalequalp,其與具有字符串整理的equal-參見:http://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node74.html)。