;;;模式匹配
(match/values (values '(1 2) #(3 4))
(((list a 2) (vector b 4)) (list a b)))
;-------------------
(define/match (qsort lst)
(('()) '())
(((list a b ...))
(append (qsort (filter (lambda (x) (< x a)) b))
(filter (lambda (x) (= x a)) lst)
(qsort (filter (lambda (x) (> x a)) b)))))
(qsort '(1 3 4 5 1 4 3 7 9 3 5 0 8 7 7 6 3 4))
;'(0 1 1 3 3 3 3 4 4 4 5 5 6 7 7 7 8 9)
;--------------------
((match-lambda ((list a 2) a))
'(9 2))
;--------------------
(match/values (values '(1 2) #(3 4))
(((list a 2) (vector b 4)) (list a b)))
;-------------------
(define/match (qsort lst)
(('()) '())
(((list a b ...))
(append (qsort (filter (lambda (x) (< x a)) b))
(filter (lambda (x) (= x a)) lst)
(qsort (filter (lambda (x) (> x a)) b)))))
(qsort '(1 3 4 5 1 4 3 7 9 3 5 0 8 7 7 6 3 4))
;'(0 1 1 3 3 3 3 4 4 4 5 5 6 7 7 7 8 9)
;--------------------
((match-lambda ((list a 2) a))
'(9 2))
;--------------------



