完整的emacs and lisp的學習集合整理如下:
https://github.com/GreyZhang/g_lisp
繼續emacs以及lisp的學習,今天再從common lisp入手學一點基礎性的語言操作。今天看一下typecase。說起來,熟悉C語言的人應該大致瞭解這麼一個類似的處理結構,因爲它與C語言中的switch case結構十分相似。
上面是一個簡單的使用例子,不同於C語言中的switch,這個功能判斷的不是數值而是類型。從上面的測試結果可以看得出,成功判斷出來了整形和字符串兩種類型。聯想C語言,switch分支有break也有一個默認的分支default。當然,說到這兒,著名的三大本中似乎也提到過這種設計可以說是一種錯誤的設計。90%的情況下,只要是沒有加break就是錯誤的。繼續說,有點偏離主題了,我們看看common lisp中與之相應的功能設計。
上面的測試就用到了default的類似分支,這裏是otherwise。同時也做了一個測試,說明這個輸入能夠工作的一個前提是輸入的是一個單個的對象。
增加一個測試,如果沒有這個默認的處理會如何呢?從上面看,沒有這個分支處理的時候這個只是會返回一個nil。
完整的emacs and lisp的學習集合整理如下: