Я начал играть с Racket система сопоставления шаблонов недавно и столкнулась с проблемой, которую я не могу понять.
Если я сделаю:
(match (list 1 2 3 4 5 6 7 8 9 10 11 12)
[(list _ x y z ...) (list y ': x)])
в REPL, я получу
'(3 : 2)
как желаемый результат.
Если я делаю:
(match (current-date)
[(date* _ x y z ...) (list y ': x)])
или
(match (date* 5 18 13 18 11 2011 5 321 #f 3600 0 "W. Europe Standard Time")
[(date* _ x y z ...) (list y ': x)])
, я получаю эту ошибку:
match: wrong number for fields for structure date*: expected 12 but got 5 in: (_ x y z ...)
Я подозреваю, что звезда Клини ...
по какой-то причине не работает с типом структуры. Почему это так?