1 2 | #lang s-exp "stackerizer.rkt" (+ 1 2 3 4) |
1 2 3 4 5 6 7 | #lang br/quicklang (provide + *) (define-macro (stackerizer-mb EXPR) #'(#%module-begin EXPR)) (provide (rename-out [stackerizer-mb #%module-begin])) |
1 2 3 4 5 6 7 8 9 10 11 | #lang br/quicklang (provide + *) (define-macro (stackerizer-mb EXPR) #'(#%module-begin EXPR)) (provide (rename-out [stackerizer-mb #%module-begin])) (define-macro-cases + [(+ FIRST) #'FIRST] [(+ FIRST NEXT ...) #'(list 'dyadd FIRST (+ NEXT ...))]) |
1 2 | #lang s-exp "stackerizer.rkt" (+ 1) |
1 2 | #lang s-exp "stackerizer.rkt" (+ 1 2) |
1 2 | #lang s-exp "stackerizer.rkt" (+ 1 2 3 4 5) |
1 2 3 4 5 6 7 8 9 10 11 | #lang br/quicklang (provide + *) (define-macro (stackerizer-mb EXPR) #'(#%module-begin (for-each displayln (reverse (flatten EXPR))))) (provide (rename-out [stackerizer-mb #%module-begin])) (define-macro-cases + [(+ FIRST) #'FIRST] [(+ FIRST NEXT ...) #'(list '+ FIRST (+ NEXT ...))]) |
1 2 | #lang s-exp "stackerizer.rkt" (+ 1 2 3 4 5) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #lang br/quicklang (provide + *) (define-macro (stackerizer-mb EXPR) #'(#%module-begin (for-each displayln (reverse (flatten EXPR))))) (provide (rename-out [stackerizer-mb #%module-begin])) (define-macro (define-op OP) #'(define-macro-cases OP [(OP FIRST) #'FIRST] [(OP FIRST NEXT (... ...)) #'(list 'OP FIRST (OP NEXT (... ...)))])) (define-op +) (define-op *) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #lang br/quicklang (provide + *) (define-macro (stackerizer-mb EXPR) #'(#%module-begin (for-each displayln (reverse (flatten EXPR))))) (provide (rename-out [stackerizer-mb #%module-begin])) (define-macro (define-ops OP ...) #'(begin (define-macro-cases OP [(OP FIRST) #'FIRST] [(OP FIRST NEXT (... ...)) #'(list 'OP FIRST (OP NEXT (... ...)))]) ...)) (define-ops + *) |