Tôi bắt đầu chơi với hệ thống phù hợp với mẫu vợt gần đây và gặp phải vấn đề mà tôi không thể hiểu được.Kết hợp mẫu với Kleene sao trên kiểu cấu trúc trong Racket
Nếu tôi làm:
(match (list 1 2 3 4 5 6 7 8 9 10 11 12)
[(list _ x y z ...) (list y ': x)])
trong REPL tôi nhận được
'(3 : 2)
như kết quả mong muốn của tôi.
Nếu tôi làm:
(match (current-date)
[(date* _ x y z ...) (list y ': x)])
hoặc
(match (date* 5 18 13 18 11 2011 5 321 #f 3600 0 "W. Europe Standard Time")
[(date* _ x y z ...) (list y ': x)])
tôi nhận được lỗi này:
match: wrong number for fields for structure date*: expected 12 but got 5 in: (_ x y z ...)
tôi nghi ngờ rằng ngôi sao Kleene ...
không làm việc với cấu trúc kiểu đối với một số lý do. Tại sao nó như vậy?
+1 câu trả lời của bạn là thực sự nhiều hơn nữa hữu ích hơn tôi. :-) – ruakh
@ruakh câu trả lời của bạn mô tả * tại sao * nó không hoạt động. Câu trả lời này mô tả * cách * để làm cho nó hoạt động. Cả hai đều khá hữu ích. –
Có, cả hai đều hữu ích. Cảm ơn. – mentus