When I write programs I using pass by value or pass by reference always seem to be logical methods. When learning about different programming languages I came across pass by name.
Pass by name is a parameter passing method that waits to evaluate the parameter value until it is used. See Stack Overflow pass by name question for more information on the method.
What I would like to know is: what are some good examples and/or reasons to use pass by name and should it be re-introduced into some more modern languages.