Схема: синтаксис сопоставления с образцом - PullRequest
0 голосов
/ 27 февраля 2011

Я пытаюсь выполнить довольно сложное сопоставление с образцом, используя match-lambda.Однако у меня много проблем с расшифровкой синтаксиса для шаблонов и совпадений, и Googling не нашел достойных ссылок.

Одна вещь, которая кажется простой, это сопоставление строки '(PARAMS: (y)) используя этот шаблон:

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

Но это не работает.

Шаблон:

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

соответствует '(PARAMS: y) но я действительно хотел бы иметь возможность заключить соответствующие параметры в квадратные скобки.

Как ни странно, шаблон:

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

даже не совпадает '(PARAMS: (y)).Кажется, в скобках есть что-то, чего я не понимаю.

1 Ответ

0 голосов
/ 27 февраля 2011

Попробуйте опубликовать небольшую полную программу. Это прекрасно работает для меня:

#lang racket

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

==>

'yep

(также см. Комментарий к вашему вопросу выше)

...