The freakiest argument passing mechanism on this planet; used in Algol 60. The argument passed to the function (which may be an expression) is evaluated only at the moment it is actually used within the function - which may be several times.

Practical applications are known, and efforts were made to include it, as a form of coercion, into Algol 68, but they eventually failed due to ambiguity problems.

A reliable source informs me that call by name is back in Ruby.