┌───────────────────────────────┐
│ Function Call │
├─────────────┬─────────────────┤
│ Pass by │ Pass by │
│ Value │ Reference │
│ (Copy data) │ (Use original) │
├─────────────┴─────────────┬───┤
│ Pass by Value-Result │ │
│ (Copy in and copy out) │ │
├───────────────────────────┤ │
│ Pass by Name │ │
│ (Send expression to eval) │ │
├───────────────────────────┤ │
│ Pass by Constant Reference│ │
│ (Reference, no changes) │ │
└───────────────────────────┴───┘
This diagram shows different ways data can be passed to a function, highlighting copying, referencing, and expression evaluation.