完整的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的学习集合整理如下: