in my standard prelude I use ==&gt; as as an expression thunkafier macro.<div><br><div class="gmail_quote">2011/8/29 Greg Hendershott <span dir="ltr">&lt;<a href="mailto:greghendershott@gmail.com">greghendershott@gmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="im">&gt; it wouldn&#39;t be necessary to create all these duplicate forms to avoid<br>
&gt; writing (lambda () ...) This would cut down on code, and also make the<br>
&gt; language more consistent.<br>
<br>
</div>I think Noel has it exactly right.<br>
<br>
The common concept is &quot;thunk&quot;.<br>
<br>
The desire is, how to say it more succinctly.<br>
<br>
Surely there should be one way to say it more succinctly, which works<br>
with many forms? As opposed to many forms each needing its variation<br>
to say the one thing more succinctly?<br>
<br>
<br>
So: How to say it more succinctly than (lambda () e)? Or even the<br>
i-can-haz-unicode way, ( () e)?<br>
<br>
(thunk e) is a first approximation. But, &quot;thunk&quot; is jargon, and it&#39;s<br>
barely more succinct than (lambda () e).<br>
<br>
So, how about any of these as the super succinct way:<br>
(() e)<br>
(\ e)<br>
( e)<br>
<br>
??<br>
<br>
Actually I&#39;m fine with (lambda () e) or ( () e). I don&#39;t think a<br>
couple extra parens are horrible, or I&#39;d be writing C# or<br>
cortex-fudge. And I don&#39;t think it&#39;s horrible for functions to be<br>
first-class, and to express &quot;here&#39;s some stuff to do&quot; as &quot;here&#39;s a<br>
function&quot;.<br>
<br>
2011/8/29 Noel Welsh &lt;<a href="mailto:noelwelsh@gmail.com">noelwelsh@gmail.com</a>&gt;:<br>
<div><div></div><div class="h5">&gt; On Mon, Aug 29, 2011 at 8:05 PM, Eli Barzilay &lt;<a href="mailto:eli@barzilay.org">eli@barzilay.org</a>&gt; wrote:<br>
&gt;&gt; There&#39;s also the semi-popular syntax extension change, like {E ...}<br>
&gt;&gt; expanding to ( () E ...), but that looks very confusing with<br>
&gt;&gt; something like (thread {(printf &quot;foo\n&quot;)}) -- so maybe do that with<br>
&gt;&gt; the outer form: {thread (printf &quot;foo\n&quot;)}. Or maybe do that with a<br>
&gt;&gt; macro instead: (e thread (printf &quot;foo\n&quot;)), which will probably go the<br>
&gt;&gt; way of `nested&#39;.<br>
&gt;<br>
&gt; Yeah, what about solving the problem of lambda&#39;s verbosity directly?<br>
&gt; If fn or \ was shorthand for lambda, or<br>
&gt;<br>
&gt; { a1 ... | expr ... }<br>
&gt;<br>
&gt; expanded to<br>
&gt;<br>
&gt; (lambda (a1 ...) expr ...)<br>
&gt;<br>
&gt; it wouldn&#39;t be necessary to create all these duplicate forms to avoid<br>
&gt; writing (lambda () ...) This would cut down on code, and also make the<br>
&gt; language more consistent.<br>
&gt;<br>
&gt; N.<br>
&gt;<br>
&gt; _________________________________________________<br>
&gt; For list-related administrative tasks:<br>
&gt; <a href="http://lists.racket-lang.org/listinfo/users" target="_blank">http://lists.racket-lang.org/listinfo/users</a><br>
<br>
_________________________________________________<br>
 For list-related administrative tasks:<br>
 <a href="http://lists.racket-lang.org/listinfo/users" target="_blank">http://lists.racket-lang.org/listinfo/users</a></div></div></blockquote></div><br></div>