emacs lisp (5) ——列表

一、参考

emacs系列文章目录——更新ing

An Introduction to Programming in Emacs Lisp

二、list

2.1 list结构

'(rose
  violet
  daisy
  buttercup)

(1) 单引号表示是一个列表的开始

(2) 列表中的元素直接使用空格隔离

(3) 列表中的元素包含于()

image.png

2.2 带有数字/子列表的列表

emacs lisp (5) ——列表_第1张图片

2.3 带有"的字符串列表

image.png

" "包含的字符串当作一个列表元素

2.4 运行列表

运行eval程序后的3种可能情况:

(1) 直接返回一个列表

(2) 产生error message

(3) 把列表中的第一个元素,解析为一个执行命令,执行该列表

在一个列表之前添加',可以使得运行时候,不解析具体的表达式,只是输出表达式的原始字符串

emacs lisp (5) ——列表_第2张图片

2.5 其他的类型

除了最常见的列表结构,还有如下类型

(1) 变量

变量不需要'()

(2) 宏

(3) 嵌套列表

嵌套列表,先执行最里层的表达式,再依次外层执行

2.6 字节码 vs lisp代码

名称 lisp代码 字节码
文件后缀 .el .elc
速度比较 需要先解释为字节码后,在执行 预编译的lisp代码, 执行速度更快

emacs lisp (5) ——列表_第3张图片

2.7 执行顺序

首先执行内部的表达式,然后将结果当作外层表达式的参数,再次计算外部表达式

emacs lisp (5) ——列表_第4张图片

如上,首先计算(+ 3 3),计算结果为6, 当作外层函数的参数,即(+ 2 6),最终的计算结果为 8

你可能感兴趣的:(emacs)