This lesson shows the difference between pure and impure functions in VHDL. Pure functions always return the same output for the same inputs and do not change any internal or external state. Impure functions can change variables or states, so their output may vary depending on previous calls. The execution table traces calls to a pure_add function and an impure_add function, showing how pure_add returns consistent results without side effects, while impure_add updates an internal variable 'sum' and returns different outputs. The variable tracker highlights how 'sum' changes after each impure_add call. Key moments clarify why pure functions are predictable and impure functions are not. The quiz tests understanding by asking about internal states and outputs at specific steps. This helps beginners see how function purity affects behavior in VHDL.