On Sun, Apr 27, 2014 at 1:09 AM, Matthias Felleisen <matth...@ccs.neu.edu>wrote:
> ** tab completion must be faster > and re-indentation of large parts of files too, if possible. Currently, re-indenting a 500 lines file can take a few seconds. > ?? I don't get the "Uniform syntax is harder to read" comment. More > highlighting, hmph? > Maybe it's just that he's not used to prefix bracketed syntax. That certainly demands a bit of training. Also, because Racket makes extensive use of long-and-clear words, maybe it is comparable to reading a math formula (non-racket) and reading the same formula using words (racket): If you know how to read a formula (know what all the symbols mean, etc.), it can be much faster than reading the verbose form. ** I do get jealous when I see > > [(i, j, k) | i <- [1..10], j <- [i..10], k <- [j..10], i^2 + j^2 == k^2] > > vs > > (for*/list ([i (range 1 20)] [j (range i 20)] [k (range j 20)] #:when (= > (+ (sqr i) (sqr j)) (sqr k))) > (list i j k)) > Would you be less jealous reading the following? (for*/list ([i (.. 1 20)] [j (.. i 20)] [k (.. j 20)] #:when (= (: i ^ 2 + j ^ 2) (: k ^ 2)) (list i j k)) or is it really the #:when part that you'd have preferred to be treated on par with the rest, as in Haskell? (or the one-liner?) ** Do we need to add these to our library? > > ;; (X ... -> Y ...) X *-> [List-of Y] > (define (gather-return-values f . s) > (call-with-values (lambda () (apply f s)) list)) > > ;; Nat (X ... -> Y ...) X *-> Y > (define (nth-return-value i f . s) > (call-with-values (lambda () (apply f s)) (lambda l (list-ref l i)))) > I've been having a need of these functions on several occasions myself too. (Although the names are too long, but maybe just omitting `return` would be acceptable to my taste.) > ** Printing is brutally expensive in DrRacket. Is there a way to make it > cheaper? > (maybe use some buffering, like wait at least 0.2 seconds before printing, instead of printing everything right away?) > ;; > ----------------------------------------------------------------------------- > > [1] What do we call the thing that shows up at the top right? > I think Robby calls them the blue-boxes? > ;; > ============================================================================= > PART II > > ** "Why, why must everything be Inferior By Default?" > > We obviously need a 'syntax story' that takes readers directly from > define-syntax-rule to syntax-parse, bringing in hygiene only late, when > it > truly matters to raise expressiveness > Why not use `define-simple-macro` and completely ditch `define-syntax-rule` from the guide? He could then have gone from (define-simple-macro (swap x y) ....) to (define-simple-macro (swap x:id y:id) ....) in no time. ** "For some reason I was thinking that indentation information is somehow > stored with functions/macros themselves. I was wrong." > > We discussed this years ago. Hmph, he thought so too. > I'd also have preferred that (but it's easier to say than to do, obviously). This would allow users to define their own indentation rules for their own forms, and possible re-define it for old forms, but that is more debatable. Thanks to submodules, it could be loaded only when used, e.g. by DrRacket. ** "I'm afraid that with the level of flexibility Racket allows, I'll never > get > to writing an actual program – most likely I'll be spending my time > improving > Racket itself (well, or at least changing it to suit my tastes)." > > Well, I went there when I was young and saw macros. Who hasn't? > I remember the time when I first thought "Oh my, Racket is the most powerful language in the world!". Quite a enlightenment moment. On Sun, Apr 27, 2014 at 2:38 AM, Sam Tobin-Hochstadt <sa...@cs.indiana.edu>wrote: > Ok, I think we agree then. What I'm proposing is that new DrRacket > installations should start in a mode where `#lang racket (+ 3 4)` > works, which is not currently the case. > Completely agree on that. Also, maybe the Language preferences should be accessible from the "Edit/Preferences" panel, or at least be listed right under, in "Edit/Language preferences". Laurent
_________________________ Racket Developers list: http://lists.racket-lang.org/dev