Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (use srfi-1)
- (define-syntax bit-syntax
- (syntax-rules (match)
- ((_ x) `((rest ,x)))
- ((_ x (match n l) z ...)
- (let-values (((left right) (split-at x l)))
- (cons (cons (quote n) left)
- (bit-syntax right z ...))))
- ((_ x y z ...) (and (= (car x) y) `(rest ,(cdr x))
- (bit-syntax (cdr x) z ...)))))
- ;; input
- (bit-syntax '(0 1 2 4 5 6 7) (match x 1) 1 2 (match y 2))
- ;; output
- ((x 0) (y 4 5) (rest (6 7)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement