Greetings!
I wondering, if is it possible to implement something like
this?
(define-syntax R (syntax-rules () ((_ r v l) #(red r v l))))
(define-syntax B (syntax-rules () ((_ r v l) #(black r v l))))
(define red-black-set-balance
(match-lambda
((or (B (R (R a x b) y c) z d)
(B (R a x (R b y c)) z d)
(B a x (R (R b y c) z d))
(B a x (R b y (R c z d)))) (R (B a x b) y (B c z d)))
(node node)))
The idea is to have some automation allowing not to write
patterns manually:
#('black #('red #('red a x b) y c) z d)
- Mikhail Bakhterev, respectfully.