=====================
== avisiblenetwork ==
=====================
seeing the invisible

Evaluating Combinations

In order to process a program, the program breaks itself up into smaller units to evaluate. In doing so, it comes across a combination of primitive expressions laced together with operators and operands. When the interpreter evaluates these combinations, it first evaluates the left most combination, which is made up of primitive elements, and moves rightward. As the interpreter evaluates the first primitive elements, it evaluates the combined elements. This is why programs are said to be recursive in nature i.e., the rule it applies is applied to itself sequentially (from primitive to combined). This is the expansion of a logic and brings in movement into the program.

In order to evaluate the entire expression (* (+ 1 (- 9 2)) 7), the interpret needs to evaluate it three times. It opens the expression up, and resolves each combination to get closer to a final value. This movement evaluating each combination to move towards the end is called “tree accumulation.” The resulting values of the processes are then stored in the environment for later use.