~ functional code represents the problem in pure functions; interpreter runs the side effects

Properly answering this question requires likely an entire book (not too long). The point here is that functional programming is meant to separate logic description / representation from its actual runtime interpretation. Your functional code just represents (doesn't run) the effects of your program as values, giving you back some kind of abstract syntax tree that describes your computation. A different part of your code (usually called the interpreter) will take those values and lazily run the actual effects. That part is not functional.

SO commentexternal link

Last modified at 2025-07-25 (creation date unknown).
This is a Take note.