<br><br>On Monday, April 28, 2014, Matthias Felleisen <<a href="mailto:matthias@ccs.neu.edu">matthias@ccs.neu.edu</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
So far we have had two threads of reactions to my 'comments on<br>
comments.' They have produced requests that I consider actionable<br>
items though I have counter-proposal to some of them. The list<br>
below does not include other actionable items I had on my list<br>
that did not get comments.<br>
<br>
<br>
<br>
With credit:<br>
<br>
* SAM suggests to always start in #lang racket. Tell students to<br>
switch to #lang htdp/bsl or use Choose Language. I think this is<br>
plain unfriendly to our largest audience. Here is my<br>
counter-proposal:<br>
<br>
 when drracket starts w/o a preference file, we pop up a radio menu:<br>
<br>
 o Are you a student learning to program?<br>
 o Are you an experienced programmer learning to use Racket?<br>
<br>
 Depending on which bullet the person checks, drracket starts in<br>
 BSL [#lang htdp/bsl, one day soon] or #lang racket.<br>
<br></blockquote><div><br></div><div>So you are asking to go back to the way it was before we added the "not a language" language?</div><div><br></div><div>Robby<span></span></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

* LAURENT asks for:<br>
<br>
~~ faster re-indentation of last files. Will pre-computations<br>
   help or is the display on the screen the bottleneck?<br>
<br>
~~ the language selection menu should also be available from<br>
   the general preference dialog<br>
<br>
~~ the following MV functions:<br>
<br>
   ~~ what names should they receive?<br>
   ~~ where should they and their tests go?<br>
<br>
    ;; (X ... -> Y ...) X *-> [List-of Y]<br>
    ;; gather the return MVs from (apply f s) in a list<br>
<br>
    (module+ test<br>
      (check-equal?<br>
       (gather-return-values (lambda () (values 1 2)))<br>
       (list 1 2))<br>
<br>
      (check-equal?<br>
       (gather-return-values (lambda (x) (values 1 x)) 2)<br>
       (list 1 2))<br>
<br>
      (check-equal?<br>
       (gather-return-values (lambda (x y) (values y x)) 2 1)<br>
       (list 1 2)))<br>
<br>
    (define (gather-return-values f . s)<br>
      (call-with-values (lambda () (apply f s)) list))<br>
<br>
    ;; Nat (X ... -> Y ...) X *-> Y<br>
    ;; pick the i-th return value from a bunch of MVs<br>
<br>
    (module+ test<br>
      (check-equal?<br>
       (nth-return-value 0 (lambda () (values 1 2)))<br>
       1)<br>
<br>
      (check-equal?<br>
       (nth-return-value 0 (lambda (x) (values 1 x)) 2)<br>
       1)<br>
<br>
      (check-equal?<br>
       (nth-return-value 0 (lambda (x y) (values y x)) 2 1)<br>
       1))<br>
<br>
    (define (nth-return-value i f . s)<br>
      (call-with-values<br>
       (lambda () (apply f s))<br>
       (lambda l (list-ref l i))))<br>
<br>
~~ macros should come with 'meta information' such as<br>
   indentation; sub-modules may enable this; probably a<br>
   research topic (well, I no longer have a macrologist<br>
   in the group)<br>
<br>
</blockquote>