方案:模式匹配语法

时间:2011-02-27 10:07:43

标签: syntax scheme pattern-matching racket

我正在尝试使用match-lambda进行一些相当复杂的模式匹配。但是,我在破解模式和匹配的语法方面遇到了很多麻烦,而谷歌搜索还没有找到任何合适的参考文献。

似乎应该很简单的一件事就是使用这种模式匹配字符串'(PARAMS:(y)):

(`(PARAMS: (,<arg>))
 <match>

但它不起作用。

模式:

(`(PARAMS: ,<arg>)
 `<match>

匹配'(PARAMS:y),但我真的希望能够将我匹配的参数放在括号中。

奇怪的是,模式:

(`(PARAMS: (y))
 `<match>

甚至不匹配'(参数:(y))。似乎有一些关于括号的东西,我不明白。

1 个答案:

答案 0 :(得分:0)

尝试发布一个小型完整程序。这对我来说很好:

#lang racket

(match `(PARAMS: (y))
  [`(PARAMS: (,var)) 'yep]
  [otherise 'nope])

==&GT;

'yep

(另外,参见上述问题的评论)