326_common lisp for循環

完整的emacs and lisp的學習集合整理如下:

https://github.com/GreyZhang/g_lisp

    繼續emacs以及lisp的學習,學了這麼久了,一直想找一個類似其他編程語言中的循環結構。今天終於接觸到了,可以使用for循環。

    先看一個例子:

    這個就是我們熟悉的for循環,採用的就是數值的判斷。跟我們在C語言中用到的方式很類似。不過,這個更加靈活,可以設置一個step。也就是上面的:by參數。值得一提的是,我做這個測試的時候出現了一個小錯誤。那就是:by參數之前的:輸入後又加了一個空格,這是一個錯誤的語法。

    值得一說的是,這個:by的參數設置是可以缺省的。如果是數字的話,這個默認的數值爲1。

    再看一下針對一個list的遍歷循環,這個操作其實是跟我們perl或者python中的for循環很相似了。但是,兩者之間有很大的區別,那就是諸如字符串之類的對象不能夠作爲這裏的迭代對象。說穿了,這裏處理的對象其實是列表。

    通過給列表對象增加一個:by參數,用來指定一個函數作爲接下來獲取列表對象的一個方式。如果是指定的是cdr函數,那麼接下來的元素獲取就是逐個進行的。

    Cddr的方式是獲取兩個元素之後的剩餘元素,這樣就能夠實現跳一個元素進行答應。類似的方式,其實還有cdddr等。

    上面就是一個cdddr的一個操作的例子。

    以上,是我簡單梳理的一個for循環的使用。還算是比較初級,但是對我來說應該是基本上可以對付目前的學習了。至於高級用法,不是不需要,後面需要的時候再進行學習。

    最近遇到了很多坎兒需要過,感覺很多事情不是很順利。不過,當我開始學習東西的時候總能夠在一定的時間內讓自己靜下心來。或許,這也算是屬於我自己的一種修行。在此,祝願偶然走到這裏,看到我學習筆記的人,也能夠以自己的方式修行精進!

完整的emacs and lisp的學習集合整理如下:

https://github.com/GreyZhang/g_lisp

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章