<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Fri, 17 Feb 2017 at 10:23 Stephan Houben <<a href="mailto:stephanh42@gmail.com">stephanh42@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="gmail_msg"><div class="gmail_msg">Proposal: Light-weight call-by-name syntax in Python</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">  The following syntax</div><div class="gmail_msg">     a : b</div><div class="gmail_msg">  is to be interpreted as:</div><div class="gmail_msg">     a(lambda: b)</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Effectively, this gives a "light-weight macro system" to Python,</div><div class="gmail_msg">since it allows with little syntax to indicate that the argument to</div><div class="gmail_msg">a function is not to be immediately invoked.<br></div></div></blockquote><div><br></div><div>This is, in my view, one case where Python's existing lambda syntax is perfectly sufficient. (I'd even argue it might be the *only* case...) If you could logger.debug(lambda: expensive_to_compute_message_here), I don't think that the delayed-expression proposal would ever have existed.</div><div><br></div><div>Ed</div></div></div>