I promised myself to use FCMP more in the future, but you should beware it is not just another way to write the same thing (it is not sytactic sugar). Function-like macros are interpreted before compilation. If you write them inside a data step, the same code is compiled, no mather how many observations you will process. If you call FCMP functions, a call is made for each observation.I expect this to be a serious performance penalty in benchmarks, especially if I see how loosly coupled the logic in and outside the FCMP are. The positive sides I see are: 1. function like macro's can have unexpected side effects. FCMP functions don't (as far as I understand) 2. FCMP functions can run complete procedures or datasteps by calling a macro for each observation of a dataset. See also also http://stackoverflow.com/questions/33817518/sas-how-to-return-a-value-from-a-sas-macro/33830485#33830485.
... View more