Now that I can see how printing '' as CR affects a larger program, I've
gotta say that I'm stumped as to how this behavior can be considered
usable.

Specifically, it's now (unless there's a trick I haven't yet discovered)
difficult (see below) to silently (i.e. without affecting the display)
execute an arbitrary expression that may, depending upon the expression,
return either '' or nothing at all.

I dunno... maybe that's not something that anyone else has ever done.

But here's an extremely common idiom that breaks badly under the new
print behavior:

      ⍎test/'expression'

This is just a conditional execution of an expression. The problem with
the new print behavior is that this line will print a CR whenever the
test is false. Not OK...

If we're going to stick with this new behavior, I can adapt. I've even
discovered a (rather tortured-looking) solution to the use-case I posed
in the second paragraph:

∇sink v
 ⍝ Consume value; no display
∇

sink '0' ⎕ea ',⍎l'

On the other hand, it's surprising to me how this new behavior affects
so much else.


Reply via email to