I think, PG has already mentioned the key benefit of the FCMP approach when he wrote: "Once a function is defined with FCMP, it can be used in great many places, including, for example, in SQL".
Indeed, you can call the function, across programs, in a data step without copying or remembering the formula and without the risk of name conflicts between variables used in the function definition and other data step variables. Moreover, you can call it in places where it would be impossible to paste the defining SAS code, e.g. in WHERE conditions (in both DATA and PROC steps as well as dataset options), nested with other functions, in a macro context (via %SYSFUNC), a format definition (with SAS 9.3 or higher) or in PROC SQL, as has been demonstrated.
The numerical results are equal to those from the data step DO loop.
... View more