From 6eafcb7eda49489f62880da1f9de8d863d91af99 Mon Sep 17 00:00:00 2001 From: Jack Firth Date: Tue, 9 Dec 2014 22:55:26 -0800 Subject: [PATCH] Update README.md Fix code block formatting --- README.md | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 3a4ea1f..faa9475 100644 --- a/README.md +++ b/README.md @@ -5,26 +5,26 @@ A Racket package for creating macros with built-in support for defining sub-macr Sometimes complex Racket macros need a way for their syntax to be extended. The Racket match form is an example, new patterns can be created for match using define-match-expander. This racket package provides a form for defining a macro with the ability to define expanders for the macro. Consider this contrived example: -(define-syntax call-each - (syntax-parser - [(_ f (expr ...)) - #'(begin (f expr) ...)])) - -(call-each displayln (1 2 3)) + (define-syntax call-each + (syntax-parser + [(_ f (expr ...)) + #'(begin (f expr) ...)])) + + (call-each displayln (1 2 3)) If a user of this macro wished for a way to specify a range of numbers as the arguments, the user must define their own version of call-each with support for ranges that expands to using the original call-each. However, this racket package provides a form, define-syntax-with-expanders: -(define-syntax-with-expanders call-each - (syntax-parser - [(_ f (expr ...)) - #'(begin (f expr) ... )])) - -(define-call-each-expander foo - (syntax-parser - [(_ low:number high:number) - #`(#,@(range (syntax-e #'low) (syntax-e #'high)))])) + (define-syntax-with-expanders call-each + (syntax-parser + [(_ f (expr ...)) + #'(begin (f expr) ... )])) -(call-each displayln (foo 1 4)) + (define-call-each-expander foo + (syntax-parser + [(_ low:number high:number) + #`(#,@(range (syntax-e #'low) (syntax-e #'high)))])) + + (call-each displayln (foo 1 4)) The define-syntax-with-expanders form creates a define-call-each-expander form, which defines syntax transformers that are only used inside the body of a call-each form and expand before call-each does.