I don't know why it would be hard to rationalize. Here is your algorithm: if (printable value) { print value print cr }
Here is the algorithm used by all APL's I've used: if (printable value) { print value } Print cr The advantage of the second algorithm is that if you are printing several values, you can see which is missing. Using your algorithm, null values don't get any display and you can get out of sync with regard to what was printed and which were null. Clearly the second is better. I challenge you, as I did in my last email, to show one instance in which a function would have '' but not want it to print. Blake On Tue, May 27, 2014 at 3:19 PM, Blake McBride <blake1...@gmail.com> wrote: > Dear David, > > First, I assure you, this is how it works. > > I do know of a 0⍴<value> idiom for branching and for nullifying a prior > value in a subsequent assignment. I am unaware of any need for that idiom > to prevent printing. Can you give me one example in a function? > > Thanks. > > Blake > > > > On Tue, May 27, 2014 at 2:32 PM, David B. Lamkins <dlamk...@gmail.com>wrote: > >> I find this confusing and counterintuitive. >> >> If displaying an empty vector causes the interpreter to emit a CR, what >> then becomes of the 0⍴<value> idiom commonly used to suppress display of >> <value>? Wouldn't your output be littered with spurious CRs every time >> your program executed such a line? >> >> I spent a half-hour digging through the IBM and ISO references, finding >> nothing on the subject of display of empty vectors. >> >> On Tue, 2014-05-27 at 13:04 -0500, Blake McBride wrote: >> > a. Neither an empty vector nor a vector of multiple elements has a CR >> > in it. The system prints the vector, and then prints a CR. CR gets >> > printed either way. >> > >> > >> > b. I found all these errors while porting my production code which >> > ran consistently over IBM APL and several other APL's. They all print >> > a blank line. >> > >> > >> > On Tue, May 27, 2014 at 12:57 PM, David B. Lamkins <da...@lamkins.net> >> > wrote: >> > How is that so? '' is an empty vector. >> > >> > On Mon, 2014-05-26 at 20:30 -0500, Blake McBride wrote: >> > > ∇test >> > > [1] '1' >> > > [2] ' ' >> > > [3] '2' >> > > [4] '' >> > > [5] '3' >> > > [6] ∇ >> > > test >> > > 1 >> > > >> > > 2 >> > > 3 >> > > >> > > >> > > >> > > >> > > There should be a blank line between 2 and 3. >> > > >> > > >> > > Thanks. >> > > >> > > >> > > Blake >> > > >> > > >> > >> > >> > >> > >> >> >> >