It also begs the question 'Why not use a function?', i.e. it is not a case where one needs a macro
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.