完整的emacs and lisp的學習集合整理如下:
https://github.com/GreyZhang/g_lisp
繼續學習emacs以及lisp,接下來的學習小結內容爲common lisp中的相等或者相同判斷。其實,對於一個C程序員來說有時候這些信息不會去做過多的關注。但是,如果是到了其他的編程語言中,有時候確實會遇到這樣的問題。比如,python之中就有一個is和==。
爲了類比,先把之前瞭解的python的一個例子展示一下。
可以看得出,在python中,相等不一定相同。接下來看看lisp:
這裏基本上看得出,eq的作用是用於判斷是否相同。
上面是關於數字的判斷,如果是數字,還可以使用=符號。這時候,eq的作用是用於判斷是否相等。這個跟python中的行爲不同,但是我覺得lisp的設計更加合理,因爲它把一類數據統一處理掉了。
如果是判斷字符是否相等,類似數字的=,字符可以使用char=函數。
Eql的功能可以認爲是上面eq、=、char=的三者的組合。
Equal,說穿了就是一個判斷是否相等的操作,可以處理上面提到的多種對象類型。
Equalp是一個很有意思的函數,判斷字符串的時候這個會忽略掉大小寫。我覺得如果是處理一些搜索類的工作,這個還是很有幫助的。
完整的emacs and lisp的學習集合整理如下: