我最近开始玩Racket模式匹配系统,遇到了一个我无法理解的问题.
如果我做:
(match (list 1 2 3 4 5 6 7 8 9 10 11 12)
[(list _ x y z ...) (list y ': x)])
Run Code Online (Sandbox Code Playgroud)
在REPL我得到
'(3 : 2)
Run Code Online (Sandbox Code Playgroud)
作为我想要的结果.
如果我做:
(match (current-date)
[(date* _ x y z ...) (list y ': x)])
Run Code Online (Sandbox Code Playgroud)
要么
(match (date* 5 18 13 18 11 2011 5 321 #f 3600 0 "W. Europe Standard Time")
[(date* _ x y z ...) (list y ': x)])
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
match: wrong number for fields for structure …Run Code Online (Sandbox Code Playgroud)