1. I think the 'unnecessary' gives you some wiggle room here. 2. I occasionally leave a 'necessary' blank line in code but prefix it with ";;" to signal that I left it blank intentionally.
3. I would write the code below, and I would consider it fine w/o blank lines, though yes, I'd add purpose statements to the auxiliaries. ;; flag-teachpack-requires : syntax nat -> syntax ;; apply the 'stepper-skip-completely hint to all ;; teachpack requires. ;; -- it would be great to do this directly when the ;; requires are added, but they're not yet syntax there, ;; and this seems like the easiest way to fix it. (define (flag-teachpack-requires stx num-teachpacks) (syntax-case stx () [(mod name lang bodies-stx ...) (begin (define bodies (syntax->list #'(bodies-stx ...))) (*check-teachpacks bodies num-teachpacks) (define-values (teachpack-requires remaining-bodies) (split-at bodies num-requires)) (*check-requires require-form? teachpack-requires) ;; -- IN -- #'(mod name lang #,@(flagged-requires stx teachpack-requires) #,@remaining-bodies))])) (define (*check-teachpacks bodies num-teachpacks) (when (< (length bodies) num-teachpacks) (error 'flag-teachpack-requires "internal error: expected bodies to include teachpack requires, got: ~e" bodies))) (define (*check-requires require-form? teachpack-requires) (unless (andmap require-form? teachpack-requires) (error 'flag-teachpack-requires "internal error: expected these to be teachpack requires: ~e" teachpack-requires))) (define (flagged-requires stx teachpack-requires) (for/list ([tp-rq (in-list teachpack-requires)]) (stepper-syntax-property stx 'stepper-ignore-completely #t))) On Mar 13, 2012, at 2:16 AM, John Clements wrote: > The style guide has this to say about blank lines: > > "5.8 Spaces > > Don’t pollute your code with spaces at the end of lines and extraneous blank > lines." > > This comes out pretty strongly against "extraneous" blank lines. In writing > the code below, though, it seems to me that the blank lines aid readability, > and that the version without them (below) just looks scary. Opinions? > > (To be fair, you really have to view the following in DrR, not in your e-mail > program.) > > First, with extraneous blank lines: > > ;; flag-teachpack-requires : syntax nat -> syntax > ;; apply the 'stepper-skip-completely hint to all > ;; teachpack requires. > ;; -- it would be great to do this directly when the > ;; requires are added, but they're not yet syntax there, > ;; and this seems like the easiest way to fix it. > (define (flag-teachpack-requires stx num-teachpacks) > (syntax-case stx () > [(mod name lang bodies-stx ...) > (begin > > (define bodies (syntax->list #'(bodies-stx ...))) > > (when (< (length bodies) num-teachpacks) > (error 'flag-teachpack-requires > "internal error: expected bodies to include teachpack > requires, got: ~e" > bodies)) > > ;; these should be the teachpack requires: > (define-values (teachpack-requires remaining-bodies) > (split-at bodies num-requires)) > > (unless (andmap require-form? teachpack-requires) > (error 'flag-teachpack-requires > "internal error: expected these to be teachpack requires: ~e" > teachpack-requires)) > > (define flagged-teachpack-requires > (for/list ([tp-rq (in-list teachpack-requires)]) > (stepper-syntax-property stx 'stepper-ignore-completely #t))) > > #'(mod name lang > #,@flagged-teachpack-requires > #,@remaining-bodies))])) > > > Then, without them: > > ;; flag-teachpack-requires : syntax nat -> syntax > ;; apply the 'stepper-skip-completely hint to all > ;; teachpack requires. > ;; -- it would be great to do this directly when the > ;; requires are added, but they're not yet syntax there, > ;; and this seems like the easiest way to fix it. > (define (flag-teachpack-requires stx num-teachpacks) > (syntax-case stx () > [(mod name lang bodies-stx ...) > (begin > (define bodies (syntax->list #'(bodies-stx ...))) > (when (< (length bodies) num-teachpacks) > (error 'flag-teachpack-requires > "internal error: expected bodies to include teachpack > requires, got: ~e" > bodies)) > ;; these should be the teachpack requires: > (define-values (teachpack-requires remaining-bodies) > (split-at bodies num-requires)) > (unless (andmap require-form? teachpack-requires) > (error 'flag-teachpack-requires > "internal error: expected these to be teachpack requires: ~e" > teachpack-requires)) > (define flagged-teachpack-requires > (for/list ([tp-rq (in-list teachpack-requires)]) > (stepper-syntax-property stx 'stepper-ignore-completely #t))) > #'(mod name lang > #,@flagged-teachpack-requires > #,@remaining-bodies))]))_________________________ > Racket Developers list: > http://lists.racket-lang.org/dev _________________________ Racket Developers list: http://lists.racket-lang.org/dev