You can create functions with defaults. I don't know about you, but that's an instant winner for me. And you can reduce temporary variables by setting up a function in stages, perhaps by asking the user for the parameters one by one, and then it fires when you have them all filled in. Saves temporary variables and looks neater. Of course you don't need to use this - you can keep writing temporary variables if you really want.
As I understand it, this is another effect of the much repeated 'closures are first class objects'.