| divert(`-1') | |
| # foreach(x, (item_1, item_2, ..., item_n), stmt) | |
| # parenthesized list, simple version | |
| define(`foreach', `pushdef(`$1')_foreach($@)popdef(`$1')') | |
| define(`_arg1', `$1') | |
| define(`_foreach', `ifelse(`$2', `()', `', | |
| `define(`$1', _arg1$2)$3`'$0(`$1', (shift$2), `$3')')') | |
| divert`'dnl |