Ошибка сопоставления с образцом в схеме - PullRequest
1 голос
/ 28 февраля 2011

Я написал функцию match-rewriter, которая просто match-lambda, за исключением того, что она возвращает свой аргумент, если совпадение не найдено.match-rewriter является частью большей функции.Вот часть кода:

((match-rewriter

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

   (`(,<func> . ,<args>)
    `(Failure))

   )ls)

Этот вызов функции:

(annotate '(PARAMS: (y))

возвращает Failure

В другом посте кто-то указал, что это работает:

#lang racket

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

возвращая да

Я проверил, что это работает, но я не могу понять, почему тот же шаблон не сопоставляется в match-rewriter.

Странно, еслиЯ просто запускаю этот код, подставляя вручную «(PARAMS: (y))» для «ls», он работает.Что меня действительно смущает.

Любой совет приветствуется.

...