296_common lisp相等或相同判断

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

https://github.com/GreyZhang/g_lisp

发布了890 篇原创文章 · 获赞 170 · 访问量 176万+

猜你喜欢

转载自blog.csdn.net/grey_csdn/article/details/104602120