One of the biggest differences between eval() and substitute is when they are used in conjunction with flags such as reduceConstants and reduceConstantFunctions, which is described in more detail at:FormattingCorrectAnswers:_NumbersAndFormulas