Canonicalize atoms during pattern- and projection-compilation and value-matching
This commit is contained in:
parent
f1bf1f5256
commit
f5d331b0d8
|
@ -301,7 +301,7 @@
|
||||||
(rseq (struct->struct-type p)
|
(rseq (struct->struct-type p)
|
||||||
(walk-pair-chain (cdr (vector->list (struct->vector p)))
|
(walk-pair-chain (cdr (vector->list (struct->vector p)))
|
||||||
acc))]
|
acc))]
|
||||||
[other (rseq other acc)]))
|
[other (rseq (canonicalize other) acc)]))
|
||||||
|
|
||||||
(walk-pair-chain ps0 (rsuccess v)))
|
(walk-pair-chain ps0 (rsuccess v)))
|
||||||
|
|
||||||
|
@ -527,7 +527,7 @@
|
||||||
[#f (walk rest stack (get ?))]
|
[#f (walk rest stack (get ?))]
|
||||||
[k (walk (cdr (vector->list (struct->vector s))) (cons rest stack) k)])]
|
[k (walk (cdr (vector->list (struct->vector s))) (cons rest stack) k)])]
|
||||||
[(cons v rest)
|
[(cons v rest)
|
||||||
(walk rest stack (rlookup r v (get ?)))])])))
|
(walk rest stack (rlookup r (canonicalize v) (get ?)))])])))
|
||||||
|
|
||||||
;; Matcher Matcher -> Value
|
;; Matcher Matcher -> Value
|
||||||
;;
|
;;
|
||||||
|
@ -638,7 +638,7 @@
|
||||||
(cons (struct->struct-type p)
|
(cons (struct->struct-type p)
|
||||||
(walk-pair-chain (cdr (vector->list (struct->vector p)))
|
(walk-pair-chain (cdr (vector->list (struct->vector p)))
|
||||||
acc))]
|
acc))]
|
||||||
[other (cons other acc)]))
|
[other (cons (canonicalize other) acc)]))
|
||||||
|
|
||||||
(walk-pair-chain ps0 '()))
|
(walk-pair-chain ps0 '()))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue