On Monday, April 28, 2014, Matthias Felleisen <matth...@ccs.neu.edu> wrote:
> > So far we have had two threads of reactions to my 'comments on > comments.' They have produced requests that I consider actionable > items though I have counter-proposal to some of them. The list > below does not include other actionable items I had on my list > that did not get comments. > > > > With credit: > > * SAM suggests to always start in #lang racket. Tell students to > switch to #lang htdp/bsl or use Choose Language. I think this is > plain unfriendly to our largest audience. Here is my > counter-proposal: > > when drracket starts w/o a preference file, we pop up a radio menu: > > o Are you a student learning to program? > o Are you an experienced programmer learning to use Racket? > > Depending on which bullet the person checks, drracket starts in > BSL [#lang htdp/bsl, one day soon] or #lang racket. > > So you are asking to go back to the way it was before we added the "not a language" language? Robby > * LAURENT asks for: > > ~~ faster re-indentation of last files. Will pre-computations > help or is the display on the screen the bottleneck? > > ~~ the language selection menu should also be available from > the general preference dialog > > ~~ the following MV functions: > > ~~ what names should they receive? > ~~ where should they and their tests go? > > ;; (X ... -> Y ...) X *-> [List-of Y] > ;; gather the return MVs from (apply f s) in a list > > (module+ test > (check-equal? > (gather-return-values (lambda () (values 1 2))) > (list 1 2)) > > (check-equal? > (gather-return-values (lambda (x) (values 1 x)) 2) > (list 1 2)) > > (check-equal? > (gather-return-values (lambda (x y) (values y x)) 2 1) > (list 1 2))) > > (define (gather-return-values f . s) > (call-with-values (lambda () (apply f s)) list)) > > ;; Nat (X ... -> Y ...) X *-> Y > ;; pick the i-th return value from a bunch of MVs > > (module+ test > (check-equal? > (nth-return-value 0 (lambda () (values 1 2))) > 1) > > (check-equal? > (nth-return-value 0 (lambda (x) (values 1 x)) 2) > 1) > > (check-equal? > (nth-return-value 0 (lambda (x y) (values y x)) 2 1) > 1)) > > (define (nth-return-value i f . s) > (call-with-values > (lambda () (apply f s)) > (lambda l (list-ref l i)))) > > ~~ macros should come with 'meta information' such as > indentation; sub-modules may enable this; probably a > research topic (well, I no longer have a macrologist > in the group) > >
_________________________ Racket Developers list: http://lists.racket-lang.org/dev