Недавно я начал играть с системой сопоставления шаблонов Racket и столкнулся с проблемой, которую не могу понять.
If i do:
(match (list 1 2 3 4 5 6 7 8 9 10 11 12)
[(list _ x y z ...) (list y ': x)])
в REPL я получаю
'(3 : 2)
как мой желаемый результат.
If i do:
(match (current-date)
[(date* _ x y z ...) (list y ': x)])
or
(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 ...)
я подозреваю, что звезда Клини ...
по какой-то причине не работает со структурным типом. Почему это так?