我最近開始使用球拍模式匹配系統,並陷入了一個我無法理解的問題。與Kleene star在球拍結構類型上匹配的模式
如果我這樣做:
(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 ...)
我懷疑是克林星...
不能與結構類型,工作一段原因。爲什麼這樣?
+1你的回答居然比我更加有幫助。 :-) – ruakh
@ruakh你的答案描述*爲什麼*它不起作用。這個答案描述了*如何使它工作。兩者都很有幫助。 –
是的,兩者都有幫助。謝謝。 – mentus