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

Reply via email to