% cat map.m4 changequote([,]) define(li,[<[li]><b>$1</b>]) define(map,[ifelse($1,,,[li($1) map(shift($*))])]) map(apple,orange,grape) % m4 map.m4 <li><b>apple</b> <li><b>orange</b> <li><b>grape</b> %