【发布时间】:2013-07-12 10:17:01
【问题描述】:
我正在尝试理解球拍的模式匹配文档,并且有一些类似以下的问题,我无法解析它。
- (quasiquote qp) — 引入了一个 quasipattern,其中标识符匹配符号。与 quasiquote 表达形式一样,unquote 和 unquote-splicing 逃回正常模式。
http://docs.racket-lang.org/reference/match.html
例子:
> (match '(1 2 3)
[`(,1 ,a ,(? odd? b)) (list a b)])
'(2 3)
没有解释这个例子,以及“标识符如何匹配符号”?我猜这是匹配'(1 2 3) 到模式'(1, a, b) 并且b 是奇怪的,但是为什么`(,1 ,a ,(? odd? b)) 不是`(1 a (? odd? b)),它需要在列表成员之间使用逗号吗?特别是`(,?为什么这样?所以字符串!
谢谢!
【问题讨论】:
标签: lisp scheme pattern-matching racket