The (last) example is best being a macro because it avoids running that crazily-expensive-computation() whereas a function would evaluate it.
The (last) example is best being a macro because it avoids running that crazily-expensive-computation() whereas a function would evaluate it.