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

2014-04-28 Thread Robby Findler
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


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

2014-04-28 Thread Laurent
On Mon, Apr 28, 2014 at 3:47 PM, Matthias Felleisen matth...@ccs.neu.eduwrote:

  o Are you a student learning to program?
  o Are you an experienced programmer learning to use Racket?

(why /learning/ to use Racket? I could well be that s/he's on a new
machine)

Why not simply Choose a language and give a list of the usual ones with
explanations?

define (gather-return-values f . s)
   (call-with-values (lambda () (apply f s)) list))


Why not something like `apply-list` or `apply/list`?
(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)


 (define (nth-return-value i f . s)
   (call-with-values
(lambda () (apply f s))
(lambda l (list-ref l i


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))`.

Laurent
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


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

2014-04-28 Thread Sam Tobin-Hochstadt
On Mon, Apr 28, 2014 at 9:47 AM, Matthias Felleisen
matth...@ccs.neu.edu wrote:

 * 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.

What do you think about combining my suggestion with Neil's suggestion
of how to help people who then misuse the Racket language?

Also, I think that in almost every course using DrRacket, the students
will need to learn how to choose languages, because they will switch
from one teaching language to the next. So I think this won't be
unfriendly.

Sam
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


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

2014-04-28 Thread Matthias Felleisen

On Apr 28, 2014, at 9:51 AM, Robby Findler ro...@eecs.northwestern.edu wrote:

 So you are asking to go back to the way it was before we added the not a 
 language language?


I don't think we asked simple questions like that. We popped up the dialogue 
itself, no? 
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


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

2014-04-28 Thread Jens Axel Søgaard
2014-04-28 16:12 GMT+02:00 Matthias Felleisen matth...@ccs.neu.edu:
 SAM:

 Also, I think that in almost every course using DrRacket, the students
 will need to learn how to choose languages, because they will switch
 from one teaching language to the next. So I think this won't be
 unfriendly.

 I am not sure this is true for simple high school courses or anyone who wants 
 to run Bootstrap 2 off-line.

In a high school context the teacher will typically show the students
how to install DrRacket and then guide them through their first
example.

Starting the program with #lang beginner would not be a problem, as
far as I can see.

/Jens Axel
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


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

2014-04-28 Thread Sam Tobin-Hochstadt
On Mon, Apr 28, 2014 at 9:47 AM, Matthias Felleisen
matth...@ccs.neu.edu wrote:

  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.

Another problem with this approach is that BSL is not the right choice
for many people in the first category.  They might be starting using
DMDA, or Picturing Programs, or working on their own with SICP. In all
of these cases, the language dialog needs to appear.

Sam
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


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

2014-04-28 Thread Stephen Bloch

On Apr 28, 2014, at 10:40 AM, Sam Tobin-Hochstadt sa...@cs.indiana.edu wrote:

 Another problem with this approach is that BSL is not the right choice
 for many people in the first category.  They might be starting using
 DMDA, or Picturing Programs, or working on their own with SICP.

I don’t remember how much Scheme you need to use the sample code in SICP — at 
least ISSL — but Picturing Programs is written assuming you’re starting in BSL, 
and it explicitly says when to switch to another language.


Stephen Bloch
sbl...@adelphi.edu





signature.asc
Description: Message signed with OpenPGP using GPGMail
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


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

2014-04-28 Thread J. Ian Johnson
Yes, there are many cases to cover. The important problem to solve is what is 
the right default? What is appropriate 95% of the time? I don't have that data.
You could have different distributions also, with the appropriate default. Tell 
students to get the picturing programs drracket or the Pyret drracket, etc 
etc.
Students who have a hard time finding choose a language will also have 
decision confusion if given a big dialog of find your class's preference in 
the haystack.
-Ian
- Original Message -
From: Sam Tobin-Hochstadt sa...@cs.indiana.edu
To: Matthias Felleisen matth...@ccs.neu.edu
Cc: dev@racket-lang.org Dev dev@racket-lang.org
Sent: Monday, April 28, 2014 10:40:37 AM GMT -05:00 US/Canada Eastern
Subject: Re: [racket-dev] actionable items, was: comments on comments on 
learning Racket

On Mon, Apr 28, 2014 at 9:47 AM, Matthias Felleisen
matth...@ccs.neu.edu wrote:

  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.

Another problem with this approach is that BSL is not the right choice
for many people in the first category.  They might be starting using
DMDA, or Picturing Programs, or working on their own with SICP. In all
of these cases, the language dialog needs to appear.

Sam
_
  Racket Developers list:
  http://lists.racket-lang.org/dev
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


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

2014-04-28 Thread Matthias Felleisen

I withdraw my support for this item. 

_
  Racket Developers list:
  http://lists.racket-lang.org/dev


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

2014-04-28 Thread Stephen Chang
 You could have different distributions also, with the appropriate default. 
 Tell students to get the picturing programs drracket or the Pyret 
 drracket, etc etc.

This seems like the way to go. There won't be one optimal solution for
Racket's wide spectrum of users.

There wouldn't even need to be different distributions, just different
installers right? Could an installer set the default language in the
prefs file?




 Students who have a hard time finding choose a language will also have 
 decision confusion if given a big dialog of find your class's preference in 
 the haystack.
 -Ian
 - Original Message -
 From: Sam Tobin-Hochstadt sa...@cs.indiana.edu
 To: Matthias Felleisen matth...@ccs.neu.edu
 Cc: dev@racket-lang.org Dev dev@racket-lang.org
 Sent: Monday, April 28, 2014 10:40:37 AM GMT -05:00 US/Canada Eastern
 Subject: Re: [racket-dev] actionable items, was: comments on comments on 
 learning Racket

 On Mon, Apr 28, 2014 at 9:47 AM, Matthias Felleisen
 matth...@ccs.neu.edu wrote:

  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.

 Another problem with this approach is that BSL is not the right choice
 for many people in the first category.  They might be starting using
 DMDA, or Picturing Programs, or working on their own with SICP. In all
 of these cases, the language dialog needs to appear.

 Sam
 _
   Racket Developers list:
   http://lists.racket-lang.org/dev
 _
   Racket Developers list:
   http://lists.racket-lang.org/dev
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


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

2014-04-28 Thread Jay McCarthy
They could even be different variations of DrRacket...

drpyret.rkt:
#lang drracket/template
#lang pyret

and bam! New DrRacket binary.


On Mon, Apr 28, 2014 at 8:59 AM, Stephen Chang stch...@ccs.neu.edu wrote:
 You could have different distributions also, with the appropriate default. 
 Tell students to get the picturing programs drracket or the Pyret 
 drracket, etc etc.

 This seems like the way to go. There won't be one optimal solution for
 Racket's wide spectrum of users.

 There wouldn't even need to be different distributions, just different
 installers right? Could an installer set the default language in the
 prefs file?




 Students who have a hard time finding choose a language will also have 
 decision confusion if given a big dialog of find your class's preference in 
 the haystack.
 -Ian
 - Original Message -
 From: Sam Tobin-Hochstadt sa...@cs.indiana.edu
 To: Matthias Felleisen matth...@ccs.neu.edu
 Cc: dev@racket-lang.org Dev dev@racket-lang.org
 Sent: Monday, April 28, 2014 10:40:37 AM GMT -05:00 US/Canada Eastern
 Subject: Re: [racket-dev] actionable items, was: comments on comments on 
 learning Racket

 On Mon, Apr 28, 2014 at 9:47 AM, Matthias Felleisen
 matth...@ccs.neu.edu wrote:

  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.

 Another problem with this approach is that BSL is not the right choice
 for many people in the first category.  They might be starting using
 DMDA, or Picturing Programs, or working on their own with SICP. In all
 of these cases, the language dialog needs to appear.

 Sam
 _
   Racket Developers list:
   http://lists.racket-lang.org/dev
 _
   Racket Developers list:
   http://lists.racket-lang.org/dev
 _
   Racket Developers list:
   http://lists.racket-lang.org/dev



-- 
Jay McCarthy j...@cs.byu.edu
Assistant Professor / Brigham Young University
http://faculty.cs.byu.edu/~jay

The glory of God is Intelligence - DC 93
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


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

2014-04-28 Thread Jay McCarthy
Of course, the big problem with different versions is that the error
message may be even worse because it won't say Go choose the Racket
language, since the teaching distribution may not even have that
included.

On Mon, Apr 28, 2014 at 9:04 AM, Jay McCarthy jay.mccar...@gmail.com wrote:
 They could even be different variations of DrRacket...

 drpyret.rkt:
 #lang drracket/template
 #lang pyret

 and bam! New DrRacket binary.


 On Mon, Apr 28, 2014 at 8:59 AM, Stephen Chang stch...@ccs.neu.edu wrote:
 You could have different distributions also, with the appropriate default. 
 Tell students to get the picturing programs drracket or the Pyret 
 drracket, etc etc.

 This seems like the way to go. There won't be one optimal solution for
 Racket's wide spectrum of users.

 There wouldn't even need to be different distributions, just different
 installers right? Could an installer set the default language in the
 prefs file?




 Students who have a hard time finding choose a language will also have 
 decision confusion if given a big dialog of find your class's preference 
 in the haystack.
 -Ian
 - Original Message -
 From: Sam Tobin-Hochstadt sa...@cs.indiana.edu
 To: Matthias Felleisen matth...@ccs.neu.edu
 Cc: dev@racket-lang.org Dev dev@racket-lang.org
 Sent: Monday, April 28, 2014 10:40:37 AM GMT -05:00 US/Canada Eastern
 Subject: Re: [racket-dev] actionable items, was: comments on comments on 
 learning Racket

 On Mon, Apr 28, 2014 at 9:47 AM, Matthias Felleisen
 matth...@ccs.neu.edu wrote:

  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.

 Another problem with this approach is that BSL is not the right choice
 for many people in the first category.  They might be starting using
 DMDA, or Picturing Programs, or working on their own with SICP. In all
 of these cases, the language dialog needs to appear.

 Sam
 _
   Racket Developers list:
   http://lists.racket-lang.org/dev
 _
   Racket Developers list:
   http://lists.racket-lang.org/dev
 _
   Racket Developers list:
   http://lists.racket-lang.org/dev



 --
 Jay McCarthy j...@cs.byu.edu
 Assistant Professor / Brigham Young University
 http://faculty.cs.byu.edu/~jay

 The glory of God is Intelligence - DC 93



-- 
Jay McCarthy j...@cs.byu.edu
Assistant Professor / Brigham Young University
http://faculty.cs.byu.edu/~jay

The glory of God is Intelligence - DC 93
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


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

2014-04-28 Thread Ryan Culpepper

On 04/28/2014 10:08 AM, Laurent wrote:

On Mon, Apr 28, 2014 at 3:47 PM, Matthias Felleisen
matth...@ccs.neu.edu mailto:matth...@ccs.neu.edu wrote:
[...]

Why not something like `apply-list` or `apply/list`?
(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)

 (define (nth-return-value i f . s)
   (call-with-values
(lambda () (apply f s))
(lambda l (list-ref l i


unstable/list has an unexported 'values-list' macro that takes an 
expression and returns the list of values it produces.


Ryan

_
 Racket Developers list:
 http://lists.racket-lang.org/dev


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

2014-04-28 Thread Matthias Felleisen

Time to move it to a place easy to find? But why a macro? 


On Apr 28, 2014, at 1:10 PM, Ryan Culpepper ry...@ccs.neu.edu wrote:

 On 04/28/2014 10:08 AM, Laurent wrote:
 On Mon, Apr 28, 2014 at 3:47 PM, Matthias Felleisen
 matth...@ccs.neu.edu mailto:matth...@ccs.neu.edu wrote:
 [...]
 
 Why not something like `apply-list` or `apply/list`?
 (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)
 
 (define (nth-return-value i f . s)
   (call-with-values
(lambda () (apply f s))
(lambda l (list-ref l i
 
 unstable/list has an unexported 'values-list' macro that takes an expression 
 and returns the list of values it produces.
 
 Ryan
 
 _
 Racket Developers list:
 http://lists.racket-lang.org/dev


_
  Racket Developers list:
  http://lists.racket-lang.org/dev


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

2014-04-28 Thread Ryan Culpepper

(values-list (values 1 2 3)) = (list 1 2 3)

It can't be a function; a function-argument continuation only accepts a 
single value.


As to why prefer a macro instead of a function like 'call/values-list', 
I think 'values-list' represents a smaller, more coherent bit of 
behavior. You can trivially wrap it around arbitrary expressions instead 
of just function calls.


Ryan


On 04/28/2014 01:45 PM, Matthias Felleisen wrote:


Time to move it to a place easy to find? But why a macro?


On Apr 28, 2014, at 1:10 PM, Ryan Culpepper ry...@ccs.neu.edu wrote:


On 04/28/2014 10:08 AM, Laurent wrote:

On Mon, Apr 28, 2014 at 3:47 PM, Matthias Felleisen
matth...@ccs.neu.edu mailto:matth...@ccs.neu.edu wrote:
[...]

Why not something like `apply-list` or `apply/list`?
(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)

 (define (nth-return-value i f . s)
   (call-with-values
(lambda () (apply f s))
(lambda l (list-ref l i


unstable/list has an unexported 'values-list' macro that takes an expression 
and returns the list of values it produces.

Ryan

_
Racket Developers list:
http://lists.racket-lang.org/dev




_
 Racket Developers list:
 http://lists.racket-lang.org/dev