245_emacs lisp progn函數的使用

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

https://github.com/GreyZhang/g_lisp

    繼續學習emacs,繼續學習lisp,繼續學習emacs lisp。

    接觸lisp的時候,基本上上來就是從函數開始的。至少,我是這樣。其實倒也好理解,這個能夠更快讓我們看到效果。學習C語言的時候,不也是先使用printf輸入一個hello world嘛!

    不過,在elisp中,還有一個專門控制順序結構的東西叫做progn。其實,這個東西我個人還是有印象的,我記得有一箇中文的elisp教程中是講過這個東西的。但是,出於我自己反覆強調了好幾遍的一個原因——我似乎對於lisp有一定的免疫力,學習總是不順暢,因此這個也只是有印象而已,沒有掌握。

    今天,學習瞭解一下progn。首先,看文檔描述:

    這裏,不僅僅有功能描述,還有一些歷史性變遷的描述。看起來,這是一個很古老的功能。這也解答了我一直存在的一個問題:這個東西的存在意義是什麼?爲什麼我不能再寫一個函數,執行這個函數把這個功能代替掉?就像我寫C代碼一樣。其實,這麼看,這個功能在一定程度上來說算是一個歷史痕跡。如果類比其他的編程語言,似乎很多時候我們壓根兒不在乎這個,畢竟代碼今本上都是從前往後逐漸執行的。

    做一個測試:

    前面小結過print,結合之前的信息,這裏就有點意思了。爲什麼,前面兩個print只出現了一行信息,而後面的卻出現了兩個呢?這也算是一個特殊之處,前面兩個只是進行求值,後面這個纔會作爲返回值。

    以上是elisp的文檔描述。

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

https://github.com/GreyZhang/g_lisp

發佈了850 篇原創文章 · 獲贊 164 · 訪問量 174萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章