[racket-dev] actionable items, was: comments on "comments on learning Racket"

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Mon Apr 28 09:51:15 EDT 2014

On Monday, April 28, 2014, Matthias Felleisen <matthias at 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)
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/dev/archive/attachments/20140428/6652073e/attachment.html>

Posted on the dev mailing list.