Comencé a jugar con el sistema de coincidencia de patrón de Raqueta recientemente y me metí en un problema que no puedo entender.Coincidencia de patrón con estrella Kleene en el tipo de estructura en Raqueta
si lo hago:
(match (list 1 2 3 4 5 6 7 8 9 10 11 12)
[(list _ x y z ...) (list y ': x)])
en REPL me sale
'(3 : 2)
como mi resultado deseado.
si lo hago:
(match (current-date)
[(date* _ x y z ...) (list y ': x)])
o
(match (date* 5 18 13 18 11 2011 5 321 #f 3600 0 "W. Europe Standard Time")
[(date* _ x y z ...) (list y ': x)])
me sale este error:
match: wrong number for fields for structure date*: expected 12 but got 5 in: (_ x y z ...)
Sospecho que la estrella de Kleene ...
no funciona con el tipo de estructura para algunos razón. ¿Por que es esto entonces?
+1 Su respuesta es mucho más útil que la mía. :-) – ruakh
@ruakh su respuesta describe * por qué * no funciona. Esta respuesta describe * cómo * para que funcione. Ambos son bastante útiles. –
Sí, ambos son útiles. Gracias. – mentus