First I write some sample code in exactly the syntax I'd like to use, in an ideal way ignoring whether it's possible or not to produce. Then I create a macro to transform that syntax into code, iterating the sample code if I encounter barriers (usually unparseable syntax). It has really helped me (a poor to mediocre scheme programmer) create good macros very quickly, improving the expressive power of my code dramatically.
First I write some sample code in exactly the syntax I'd like to use, in an ideal way ignoring whether it's possible or not to produce. Then I create a macro to transform that syntax into code, iterating the sample code if I encounter barriers (usually unparseable syntax). It has really helped me (a poor to mediocre scheme programmer) create good macros very quickly, improving the expressive power of my code dramatically.