2
匹配我想匹配在球拍以下两个列表(前身为PLT的计划)中的一个:替代当模式球拍
'(somename : (_ptr o sometype))
或
'(somename : (_ptr io sometype))
正如你看到的,唯一的区别是嵌入式列表中的文字'o和'io。
我可以看到两种基本的方法来做到这一点。
或者:
(match myexpr
[(list name ': (list '_ptr 'o _)) name]
[(list name ': (list '_ptr 'io _)) name]
[_ 0])
这似乎是工作的重复,但很清晰。或者:
(match myexpr
[(list name ': (list '_ptr mode _))
(if (or (eq? mode 'o)
(eq? mode 'io))
name
0)]
[_ 0])
它避免了几乎重复的模式,但不太清楚。
我的问题是,有没有一种方法来指定球拍模式匹配的替代方法,沿着{'o | “IO}?如果不是,上面列出的两种方法中的哪一种将是最常用的球拍方式?
Thanx - 不知道我是如何错过的,因为我实际上是在找它。不完全是 :-) – corvuscorax 2010-06-21 16:57:17