В первом случае (x)
означает уже в кавычках, из документации (выделено мной):
Выбранное предложение является первымодин с датумом , чья форма quoted
равна equal?
с результатом val-expr
.
Следовательно, ('x)
вдвойне-цитировал.Если вы хотите сопоставить второй случай, понадобится что-то вроде этого:
(case ''x
[(x) "ex"]
[('x) "quoted ex"])
=> "quoted ex"
Другими словами, первое условие в вашем коде проверяет, является ли (equal? 'x 'x)
, а второе проверяет (equal? 'x ''x)
, очевидно, соответствует только первый.