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