On 31 December 2011 10:32, Eli Barzilay <e...@barzilay.org> wrote: > 40 minutes ago, Daniel Hartwig wrote: >> If two procedures are implemented they will be almost verbatim copies >> of each other. > > Yeah, but that's not an argument in favor or against -- since you can > switch between: > > (define (foo x [other-behavior? #f]) ...code..) > > and > > (define (foo-internal x other-behavior?) ...same code...) > (define (foo x) (foo-internal x #f)) > (define (foo-other x) (foo-internal x #t)) > > where the internal function is not exported from the library.
Ah, I did not think of that :-) > > >> No comment on Perl's handling. >> >> I think Racket does the right thing by keeping *all* the empty >> strings in place. > > Well, I do think that Perl (as well as other libraries & languages) > are a good reference point to compare against... If anything, you > should at least be aware of other design choices and why you went in a > different direction. (And we did not follow perl in all aspects, as > those tests clarify.) > A good point. I'm interested to find out the reasoning behind Perl's decision to drop empty strings.. Seems a strange thing to do IMO.