I had this argument with the Rust folk. They use the term &quot;closure&quot; for things that don&#x27;t reference any variables in the outer scope.  Sometimes, all you need is a function pointer.  For example:<p><pre><code>  something.unwrap_or_else(|err| {
                     writeln!(io::stderr(), &quot;{}&quot;, err);
                     process::exit(1);
                 }
</code></pre>
This is really just a function call. There are no references to an outer scope. But Rust requires a closure there. You can&#x27;t pass a pointer to a function.<p>You&#x27;d like for this to optimize down to a function call, without saving any state from the outer scope.  Don&#x27;t know if Rust does this yet.