add macros to apply a function or macto to a list