Scheme: pattern matching syntax
我正在尝试使用match-lambda进行一些相当复杂的模式匹配。但是,我在解析模式和匹配项的语法时遇到了很多麻烦,而且Googling还没有找到任何体面的引用。
似乎应该很简单的一件事是使用以下模式匹配字符串\\'(PARAMS:(y)):
1 2 | (`(PARAMS: (,)) <match> |
但是它不起作用。
模式:
1 2 | (`(PARAMS: ,) `<match> |
匹配\\'(PARAMS:y),但我真的很希望能够将要匹配的参数放在方括号中。
奇怪的是,模式:
1 2 | (`(PARAMS: (y)) `<match> |
甚至不匹配\\'(参数:(y))。似乎有一些我不了解的括号。
尝试发布一个完整的小型程序。这对我来说很好:
1 2 3 4 5 | #lang racket (match `(PARAMS: (y)) [`(PARAMS: (,var)) 'yep] [otherise 'nope]) |
==>
1 | 'yep |
(另请参见上面对您的问题的评论)