Two hours ago, Matthew Flatt wrote: > [Re-sending; an earlier post of this message seems to be delayed.] > > What if the default printing format for true and false values in > Racket changed from `#t' and `#f' to `#true' and `#false'? > > The forms `#t', `#T', `#true', `#f', `#F', and `#false' would all be > accepted as inputs forms. We could conceivably limit the change to > `print' output and not change `write' or `display' output, but let's > say for now that the proposal is to change the default for all > output modes in Racket. [...]
I'd prefer it if at least `write' keeps it as "#t". IMO `write' as a quick way to serialize some data to a file in a way that is also readable is a very big win, and having a single character (in addition to the obligatory "#" syntax marker) used for booleans makes it fine in most cases, even up to pretty big files. I can see how making it much longer will encourage using some bad home-cooked serializations to avoid the extra size -- and that would be bad. (As for `print' -- seems fine to use the long forms, and I don't have any opinion on `display' (maybe in the name of "just show some roughly readable stuff" it should use the long forms too).) > This proposal originates with the need to fix a problem in the HtDP > teaching languages. The HtDP teaching languages currently use `true' > and `false' for true and false, and the HtDP languages are configured > to print booleans as `true' and `false'. That doesn't work with quoted > lists. For example, > > '(true false) > > is a list of symbols, not a list of booleans. BTW, wasn't the whole sophisticated quoted printout part of a solution to this, so that those true/false would not print out as quoted? -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev