> How the parameters are passed must be decided by the compiler, not by the programmer.
Consider the program
def f(x):
return 17
If omega is a non-terminating expression then the call f(omega)
might or might not terminate, depending whether the compiler uses a lazy or eager evaluation strategy. This freedom is not something I would recommend to a programming language designer.