Unfortunately I don&#39;t think you can combine def with destructuring, because then you can&#39;t use it for functions afaik. I think two forms is necessary.<br><br><div class="gmail_quote">On Thu, May 10, 2012 at 1:20 PM, Greg Hendershott <span dir="ltr">&lt;<a href="mailto:greghendershott@gmail.com" target="_blank">greghendershott@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">To combine what Neil and Luke said, maybe one new thing `def&#39; could do<br>
is include destructuring.<br>
<br>
In other words it&#39;s really an alias for `match-define&#39;.<br>
<br>
And<br>
  (match-define x 1)<br>
<br>
is the same as<br>
  (define x 1)<br>
<br>
correct?<br>
<br>
<br>
I&#39;d also like to see a syntax if possible that lets you (as with<br>
`let&#39;) do multiple defines in one shot:<br>
<br>
(let ([x 1]<br>
      [y 2])<br>
  ...)<br>
<br>
could perhaps be:<br>
<br>
(def ([x 1]<br>
      [y 2])<br>
  ...)<br>
<br>
or even just:<br>
<br>
(def x 1<br>
     y 2)<br>
<br>
?<br>
<div class="HOEnZb"><div class="h5"><br>
On Thu, May 10, 2012 at 12:58 PM, Luke Vilnis &lt;<a href="mailto:lvilnis@gmail.com">lvilnis@gmail.com</a>&gt; wrote:<br>
&gt; +1000 to &quot;def&quot; idea<br>
&gt;<br>
&gt; I think the super verbose keywords can be an impediment to code readability.<br>
&gt; The increase in signal-to-noise, along with (imo) sexier looking code<br>
&gt; samples to show to prospective Racketeers is worth it. As silly as it might<br>
&gt; sound, when I started out, Scheme&#39;s notoriously long keywords gave it a<br>
&gt; superficial appearance of impracticality.<br>
&gt;<br>
&gt; ;; hot!<br>
&gt; (def x 12)<br>
&gt; (def y 15)<br>
&gt; (def z 12)<br>
&gt; (+ x y z)<br>
&gt;<br>
&gt; ;; not!<br>
&gt; (define x 12)<br>
&gt; (define y 15)<br>
&gt; (define z 12)<br>
&gt; (+ x y z)<br>
&gt;<br>
&gt; On a related note - if we&#39;re looking to shorten some offending keywords,<br>
&gt; making a nice alias for &quot;match-define&quot; would be fantastic. It is a shame to<br>
&gt; have to use a 12-letter keyword to get something that is accomplished with<br>
&gt; &quot;let&quot; in other languages, especially since Racket&#39;s pattern matching is too<br>
&gt; awesome not to use.  I sometimes define &quot;val&quot; or &quot;mdef&quot; as an alias for<br>
&gt; &quot;match-define&quot;, but I&#39;m always too embarassed to let such code escape my<br>
&gt; laptop.<br>
&gt;<br>
&gt; On Thu, May 10, 2012 at 12:29 PM, Neil Van Dyke &lt;<a href="mailto:neil@neilvandyke.org">neil@neilvandyke.org</a>&gt;<br>
&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Making new names for key things is a good time to revisit what those<br>
&gt;&gt; things look like and mean.<br>
&gt;&gt;<br>
&gt;&gt; I have no major requests for changes to &quot;define&quot;, but perhaps someone else<br>
&gt;&gt; does.  (I do, however, have a major request for the &quot;let&quot; family, but not a<br>
&gt;&gt; lot of time at the moment to advocate it, unless someone is going to mess<br>
&gt;&gt; with &quot;let&quot; now.)<br>
&gt;&gt;<br>
&gt;&gt; Neil V.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; ____________________<br>
&gt;&gt;  Racket Users list:<br>
&gt;&gt;  <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; ____________________<br>
&gt;  Racket Users list:<br>
&gt;  <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
&gt;<br>
</div></div></blockquote></div><br>