emacs學習lisp (1) ——概覽

1、參考

emacs系列文章目錄——更新inggit

Emacs Lisp 簡明教程github

2、scratch緩存區

進入scratch緩存區,segmentfault

模式選擇 lisp-interaction-mode緩存

(注: 能夠經過 m-x lisp-interaction-mode ret 切換模式)函數

3、小試牛刀

3.1 hello world

image.png

(message "hello world")

3.2 兩個執行命令

(1) c-x c-espa

執行lisp代碼的命令爲 c-x c-e, 即函數 eval-last-sexpcode

函數解釋以下:教程

image.png

執行光標以前的表達式ci

(2) c-j,即函數 val-print-last-sexp作用域

函數解釋以下:

image.png

執行光標以前的表達式,和c-x c-e的不一樣之處是,執行結果不只在底部的mini buffer中輸出,並且在 current buffer中也會顯示

注意: 一次只會解釋執行一個表達式

4、函數

4.1 函數定義

image.png

函數由3個部分組成,

(1)函數名稱

(2)函數參數列表

(3)函數體

函數體和函數定義之間,能夠經過"doc string"添加函數文檔

4.2 函數執行

image.png

4.3 注意

注意,

(1) 若是須要執行新定義的函數 hello-world,須要先在函數定義結尾,執行c-x c-e解析執行該新函數,不然會報錯

Debugger entered--Lisp error: (void-function hello-world)

(2) 當執行過函數定義後,光標在函數名時候,經過命令 c-h f能夠查看該函數的文檔

image.png

5、變量

5.1 setq

image.png

能夠經過 c-h v查看變量的文檔

image.png

5.2 defvar

image.png

defvar聲明變量,若是聲明的變量已經存在,則不會改變原值

因爲lisp中的函數都是全局的,致使setq定義的變量也容易變爲全局變量,

若是想要查看變量是否已經存在,能夠經過c-h v查看是否已經定義

5.3 let

lisp中可使用 let指定局部做用域的變量

image.png

這時候,局部變量 pi, area 定義在函數 circle-area中,經過c-h v沒法查看變量

5.4 let*

let*let的使用方式相同,惟一區別是:

let*中可使用以前定義的局部變量

image.png

6、lambda 表達式

image.png

6.1 定義時候直接調用

image.png

6.2 lambda表達式賦值爲變量

image.png

7、控制結構

7.1 順序執行

image.png

7.2 條件判斷 if

image.png

7.3 條件判斷 cond

image.png

7.4 循環 while

image.png

7.5 邏輯運算

image.png

相關文章
相關標籤/搜索