<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Mon, Apr 28, 2014 at 3:47 PM, Matthias Felleisen <span dir="ltr"><<a href="mailto:matthias@ccs.neu.edu" target="_blank">matthias@ccs.neu.edu</a>></span> wrote:<br>

<blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote">
 o Are you a student learning to program?<br>
 o Are you an experienced programmer learning to use Racket?<br></blockquote><div>(why "/learning/ to use Racket"? I could well be that s/he's on a new machine) <br></div>
<br></div><div class="gmail_quote">Why not simply "Choose a language" and give a list of the usual ones with explanations?<br></div><div class="gmail_quote"><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

<div id=":32" class="" style="overflow:hidden">define (gather-return-values f . s)<br>
      (call-with-values (lambda () (apply f s)) list))<br></div></blockquote><div><br></div><div>Why not something like `apply->list` or `apply/list`?<br></div><div>(personally I usually call it `cvl` for call/values->list, but that's because I often  use it on the command line, which makes going from `(foo 'a 'b 'c)` to `(cvl foo 'a 'b 'c)` effortless)<br>

</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div id=":32" class="" style="overflow:hidden">

    (define (nth-return-value i f . s)<br>
      (call-with-values<br>
       (lambda () (apply f s))<br>
       (lambda l (list-ref l i))))</div></blockquote></div><br></div><div class="gmail_extra">Forgot to mention that I've had less need for this one as once you have `gather-return-values` it's easy enough to write `(second (gather-return-values foo 'a 'b 'c))`.<br>

<br></div><div class="gmail_extra">Laurent<br></div></div>