310_common lisp typecase分支结构

完整的emacs and lisp的学习集合整理如下:

https://github.com/GreyZhang/g_lisp

    继续emacs以及lisp的学习,今天再从common lisp入手学一点基础性的语言操作。今天看一下typecase。说起来,熟悉C语言的人应该大致了解这么一个类似的处理结构,因为它与C语言中的switch case结构十分相似。

310_common lisp typecase分支结构

    上面是一个简单的使用例子,不同于C语言中的switch,这个功能判断的不是数值而是类型。从上面的测试结果可以看得出,成功判断出来了整形和字符串两种类型。联想C语言,switch分支有break也有一个默认的分支default。当然,说到这儿,著名的三大本中似乎也提到过这种设计可以说是一种错误的设计。90%的情况下,只要是没有加break就是错误的。继续说,有点偏离主题了,我们看看common lisp中与之相应的功能设计。

310_common lisp typecase分支结构

    上面的测试就用到了default的类似分支,这里是otherwise。同时也做了一个测试,说明这个输入能够工作的一个前提是输入的是一个单个的对象。

310_common lisp typecase分支结构

    增加一个测试,如果没有这个默认的处理会如何呢?从上面看,没有这个分支处理的时候这个只是会返回一个nil。

完整的emacs and lisp的学习集合整理如下:

https://github.com/GreyZhang/g_lisp