!functional programming

VON NEUMANN BOTTLENECK

 _____      _______
|     |    |       |
| CPU |----| store |
|_____|    |_______|

The task of a program is to change the contents of the store.
This task is accomplished by pumping words back and forth through the
bottleneck.

A large part of the traffic is not useful data but merely names of
data, as well as operations and data used to compute such names.

High level languages are complex versions of the Von Neumann computer.
Von Neumann programming languages use:
- variables to imitate the storage cells of the computer
- control statements to elaborate its jump
- assignment statements imitate its fetching, storing and arithmetic

The assignment statement is the Von Neumann bottleneck; it keeps us
thinking a word at a time