Functional programming
Programming with pure functions that have no local state and can be treated as mathematical functions that always return the same output values given the same input arguments at all times. In particular, no assignment operator like set! is permitted.
The effect of running a functional program can therefore be easily analysed by simply substituting every variable and expression with its value and straightforwardly evaluate the resulting expression - substitution model.
Links