Macro recursion is a macro-expansion technique in which a macro invokes itself to handle additional input. A recursive definition usually includes a base case that performs the work and other arms that call the macro again. section 22.3
Reducing several inputs to one base case
The `my_macro!` example accepts no input, one expression, or many expressions. The latter two arms invoke `my_macro!()` again, so every form reaches the empty-input arm, which prints “Let's print this.” section 22.3
macro_rules! write {
($dst:expr, $($arg:tt)*) => ($dst.write_fmt($crate::format_args!($($arg)*)))
}
Inspecting standard-library macro definitions helps reveal how one macro forwards captured input to another macro. section 22.3

