标签:newlisp
match函数很特别, 就是用两个list比较的时候,后一个list中如果有符合前一个list的通配符的描述,则挑出来,作为独立的list返回。
简单的例子如下:
> (match ‘(a ? c) ‘(a b c)) (b)
* 表示任何多个元素
? 表示可以有元素,也可以没有
+ 表示至少有一个元素
(match ‘(a ? c) ‘(a (x y z) c)) → ((x y z))
> (match ‘(a d c) ‘(a b c)) nil
> (match ‘(a (b c ?) x y z) ‘(a (b c d) x y z)) (d)
标签:newlisp
原文地址:http://blog.csdn.net/csfreebird/article/details/39136995