完整的common lisp的學習集合整理如下:
繼續學習spacemacs的配置,從中學點emacs lisp的基礎知識。前面做了初始化的分析:
之前分析了上面的**執行,啟動emacs之後,if條件並不成立,因此會執行load-file的操作。之後,將會載入制定的檔案。檔案載入前面也做了分析,之後被載入的檔案是下面的這個檔案:
接下來,這個檔案的資訊會被載入到執行環境中。為了弄明白這個配置究竟在做什麼,接下來看看這個檔案的內容。
首先,這個檔案中定義了乙個函式。為了弄明白這個函式的功能,需要先熟悉一下add-to-list函式。這個也就是本次的學習點了。檢視函式的幫助資訊如下:
這個功能,可以模擬之前學過的python裡面的列表處理功能。向列表中增加元素,不過不同的是這裡的列表有點雜湊或者字典的意思。但是,這個列表又不同於雜湊,因為這個列表是有順序的。預設情況下,加入到表頭,指定引數後可以實現追加。這麼看來,這個函式很有c語言資料結構中的鍊錶的操作方式的意思,只是這個功能又增加了乙個檢查是否存在的功能。
檢查是否存在的功能,可以使用預設的功能,也可以使用自己指定的函式。看起來,這個函式在實現上的技巧性確實是很高了。要完成這麼一系列的功能,又能夠容納不同的資料型別,這是乙個很龐大的基礎設計實現,至少c不會很容易。或許,這算是lisp的高階點?
接下來,測試學習這個函式。相應的測試按照elisp的文件來做一遍:
建立了變數列表。
成功增加了元素c。
由於b已經存在,增加無效。
我自己再增加乙個追加功能的測試:
從上面的效果看,d被成功追加到了列表中。
Python向列表中插入元素 列表
python列表中的元素種類可以是相同的也可以是不同的,如 num 1 2 3 4 str python 1 中國 nmu 1 2 3 4 str python 1 中國 phone 諾基亞 三星 oppo 華為 print phone 諾基亞 三星 oppo 華為 2 extend 在列表末尾新增...
Python 向函式傳遞列表
在實際使用中你會發現,向函式傳遞列表是比較實用的,這種列表可能包含名字 數字 可能更複雜的物件 字典 假設向乙個函式傳遞一堆水果,我們說出我們喜歡所有的水果 def obj fruits for fruit in fruits msg i like fruit print msg l orange ...
關於向列表迴圈新增字典
例如 list 路人甲 路人乙 路人丙 new list dict for i in range 3 dict name list i dict print new list 結果 這是因為 字典 dict 在python裡是object,不屬於primitive type 即int float s...