From 0383c6bc49425ac457aefd38ba9de26930163217 Mon Sep 17 00:00:00 2001 From: JackFirth Date: Tue, 9 Dec 2014 20:31:24 -0800 Subject: [PATCH] Examples Add some example code --- examples.rkt | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 examples.rkt diff --git a/examples.rkt b/examples.rkt new file mode 100644 index 0000000..05d4c6b --- /dev/null +++ b/examples.rkt @@ -0,0 +1,21 @@ +#lang racket + +(require (for-syntax syntax/parse)) + +(require generic-syntax-expanders) + +(define-syntax-with-expanders blah + (syntax-parser + [(_ (any ...)) + #'(begin (foo any) ...)])) + +(define-blah-expander baz + (syntax-parser + [(_ n:number) + #`(#,@(build-list (syntax-e #'n) values))])) + +(expand-once #'(blah (1 2 3 4 5))) +;; => expands to (begin (foo 1) (foo 2) (foo 3) (foo 4) (foo 5)) + +(expand-once #'(blah (baz 5))) +;; => expands to (begin (foo 0) (foo 1) (foo 2) (foo 3) (foo 4))