История изменений
Исправление den73, (текущая версия) :
я-то понял, что написал, хотя ошибки не исключены. Общая идея такова: да, хорошо встроить сторожа прямо в шаблон, например, в таком случае:
(match '(1 . "test")
((cons _ (guard x (stringp x))) (print x)))
(match '(1 . "test") ; этот код не работает
((cons x "test")
(cond
((numberp x) (делай-раз))
((stringp x) (делай-два))
(t (перейти-к-следующему-образцу-для-сопоставления))))
((cons x y)
...))
Исходная версия den73, :
я-то понял, что написал, хотя ошибки не исключены. Общая идея такова: да, хорошо встроить сторожа прямо в шаблон, например, в таком случае:
(match '(1 . "test")
((cons _ (guard x (stringp x))) (print x)))
(match '(1 . "test") ; этот код не работает
((cons x "test")
(cond
((numberp x) (делай-раз))
((stringp x) (делай-два))
(t перейти-к-следующему-шаблону)))
((cons x y)
...))