From c7616458b761a65785435bcfb5b7e7634f4388cd Mon Sep 17 00:00:00 2001 From: Peter Hart Date: Fri, 21 Feb 2020 18:50:45 -0500 Subject: [PATCH] added stackerizer --- stackerizer/stackerizer-test.rkt | 2 ++ stackerizer/stackerizer.rkt | 17 +++++++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 stackerizer/stackerizer-test.rkt create mode 100644 stackerizer/stackerizer.rkt diff --git a/stackerizer/stackerizer-test.rkt b/stackerizer/stackerizer-test.rkt new file mode 100644 index 0000000..2403190 --- /dev/null +++ b/stackerizer/stackerizer-test.rkt @@ -0,0 +1,2 @@ +#lang s-exp "stackerizer.rkt" +(+ 1 2 3 4 (* 1 2 3 (+ 1))) diff --git a/stackerizer/stackerizer.rkt b/stackerizer/stackerizer.rkt new file mode 100644 index 0000000..997696b --- /dev/null +++ b/stackerizer/stackerizer.rkt @@ -0,0 +1,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-op OP) + #'(define-macro-cases OP + [(OP FIRST) #'FIRST] + [(OP FIRST NEXT (... ...)) + #'(list 'OP FIRST (OP NEXT (... ...)))])) + +(define-op +) +(define-op *) +