Value DefinitionsFunction parameters can be passed by value or be passed by name.
The same distinction applies to definitions.
The def form is “by-name”, its right hand side is evaluated on each use.
There is also a val form, which is “by-value”.
The right-hand side of a val definition is evaluated at the point of the definition itself.
val x = 2 val y = square(x)
Afterwards, the name refers to the value. For instance, y above refers to 4, not square(2).