Noel Welsh wrote at 08/29/2011 10:59 AM:
I think core of my beef with keyword args in Overeasy is that they
don't compose. For example, if you give all of setup, teardown, and
around keyword args, in what order are they applied? I.e. if I specify
both setup and around, which runs first? I prefer writing an
expression, as this makes it explicit and obvious what is going on.
I think I suggested only "#:setup" and "#:teardown". The order is easy
to define. :) And I don't think they need to compose. If someone needs
something fancier, they do it the Racket way, not the Overeasy sugar way.
I
don't like the use of keyword arguments for the other parameters for
similar reasons. I think they can all be replaced with library
procedures. E.g.
(with-output name expr)
to capture current-output-port.
The documentation gives the scenarios of a test case catching outputs in
these two cases:
(test (let ((o (open-output-string)))
(display 'a o) (display 'b) (display 'c o)
(get-output-string o))
"abc")
(test (begin (fprintf (current-error-port)
"%W%SYS$FROBINATOR_OVERHEAT\n")
0)
42)
In neither case (missing argument in new code, unexpected diagnostic
message in legacy code) did the test writer expect output.
How does this fit with "with-output"?
Also, maybe it's time for me to find all the unit tests in PLaneT, and
see what all we actually need to support so far.
--
http://www.neilvandyke.org/
_________________________________________________
For list-related administrative tasks:
http://lists.racket-lang.org/listinfo/users