11.4 模式匹配条件

除了四种基本的条件形式之外,Emacs Lisp 还提供了一种模式匹配条件形式——pcase 宏。它是 condcl-case 的混合体(see Conditionals in Common Lisp Extensions),克服了二者的局限,并引入了模式匹配编程风格。 pcase 所解决的局限包括:

从概念上讲,pcase 宏借鉴了 cl-case 以第一个参数为中心的特点,以及 cond 的分支处理流程;它用一种泛化的相等性判断(属于 模式匹配(patern matching) 的一种变体)替代了 condition,并增加了相应机制,让你可以简洁地表达分支的判断条件,同时在分支的判断条件与 body-forms 之间共享 let 绑定。

这种对判断条件的简洁表达形式被称为 模式(pattern)。当作用于第一个参数值的判断条件返回非 nil 时,我们称 “模式与该值匹配(the pattern matches the value)”(有时也说 “该值与模式匹配(the value matches the pattern)”)。

emacs

Emacs

org-mode

Orgmode

Donations

打赏

Copyright

© 2025 Jasper Hsu

Creative Commons

Creative Commons

Attribute

Attribute

Noncommercial

Noncommercial

Share Alike

Share Alike