<div dir="ltr">Good to understand the trade-off.  In a  similar vein I see that in BSL (+ ...), for example, requires at least two arguments vs zero or more in racket.<div><br></div><div>I did find it a little odd that I had recourse to use a "teachpack" to gain access to this nice set of general-purpose drawing abstractions. Are the facilities provided in 2htdp/image used a fair bit in non-teaching contexts? If so,</div>

<div>would it make sense to factor out a racket-oriented library at some stage?</div><div><br></div><div>Dan</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Oct 22, 2013 at 5:33 AM, Matthias Felleisen <span dir="ltr"><<a href="mailto:matthias@ccs.neu.edu" target="_blank">matthias@ccs.neu.edu</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
This is of course a symptom of the more general problem that we fail to have a mechanism that specializes a module to a particular language context. In *SL, the restriction is absolutely great; in Racket, the restriction is a pain. Note that units wouldn't solve the problem cleanly either -- Matthias<br>


<div class="HOEnZb"><div class="h5"><br>
<br>
<br>
<br>
<br>
<br>
<br>
On Oct 22, 2013, at 8:14 AM, Robby Findler <<a href="mailto:robby@eecs.northwestern.edu">robby@eecs.northwestern.edu</a>> wrote:<br>
<br>
> I did this explicitly because (I believe) it helps with parenthesis errors when beginning students make simple mistakes using the library. For more advanced programmers, it seems straightforward to define things like:<br>


><br>
> (define (above* . is) (cond [(null? is) (blank)][(null? (cdr is)) (car is)][else (apply above is)])<br>
><br>
> and you can even abstract that as a function that takes something like above and builds an above* from it.<br>
><br>
> Robby<br>
><br>
><br>
> On Mon, Oct 21, 2013 at 10:58 PM, Daniel Prager <<a href="mailto:daniel.a.prager@gmail.com">daniel.a.prager@gmail.com</a>> wrote:<br>
> Currently above from 2htdp/image requires at least two arguments. I.e.<br>
><br>
> procedure<br>
> (above i1 i2 is ...) → image?<br>
><br>
> Recently I have been using an idiom where I stack a list of one or more images.<br>
> I.e.<br>
><br>
> (apply above list-of-images)<br>
><br>
> I have a workaround, but it seems to me that a more tolerant "above" -- which acts as an identity when passed a single image -- would be an improvement to the<br>
> library.<br>
><br>
> Similarly for beside, etc.<br>
><br>
><br>
> Dan<br>
><br>
> ____________________<br>
>   Racket Users list:<br>
>   <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
><br>
><br>
> ____________________<br>
>  Racket Users list:<br>
>  <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr"><div style="font-family:arial;font-size:small"><b>Daniel Prager</b></div><div style="font-family:arial;font-size:small">Agile/Lean Coaching, Software Development and Leadership</div>

<div style="font-family:arial;font-size:small"><font color="#999999">Twitter:</font> <a href="https://twitter.com/agilejitsu" style="color:rgb(17,85,204)" target="_blank">@agilejitsu</a> </div><div style="font-family:arial;font-size:small">

<font color="#999999">Blog:</font> <a href="http://agile-jitsu.blogspot.com/" style="color:rgb(17,85,204)" target="_blank">agile-jitsu.blogspot.com</a></div></div>
</div>