оценить условие при использовании синтаксического разбора? - PullRequest
0 голосов
/ 06 декабря 2018

Есть ли эквивалент #:when из match для syntax-parse?Не смог найти его в документации.Спасибо.

1 Ответ

0 голосов
/ 06 декабря 2018

Да, есть.Это также называется #:when.Он появляется даже при поиске #:when в поиске документации.

Из документов:

#:when <em>condition-expr</em>

Оценивает condition-expr в контексте всех предыдущих привязок атрибутов.Если значение #f, соответствующий процесс возвращается.Другими словами, #:when походит на #:fail-unless без аргумента сообщения.

Эквивалент #:post (~fail #:unless condition-expr #f).

Пример:

> (syntax-parse #'(m 5)
    [(m x:number)
     #:when (even? (syntax-e #'x))
     #'x])
m: bad syntax
  in: (m 5)
...