Roger wrote:

> The difference is that the dyad ": depends on the
> C library routines whereas 8!:x do the programming
> themselves

Is  8!:x  fast?  If so, is it feasible and desirable to implment  m ": n  for 
numeric  n  by calling   8!:x   under the covers?  Something along these lines:

        fmt =: verb define"1 _
                ": y
        :
                'a b'=. <"_1 |: fmt&.> +. x
                
                k    =.  , L: 0
        
                ;:^:_1 ('b< >' k (>a) k '.' k (>b)) 8!:0 y
        )

I'm sure that's buggy and incomplete, but it gives the gist.  

I will note that the  ;:^:_1  part annoys me, and this isn't the first time.  I 
wish I had a version of  8!:2  that put spaces between the formatted numbers.  
For example, as opposed to:

           '0.3' (8!:2) 9 9
        9.0009.000

I would like:

           '0.3' (8!:3) 9 9
        9.000 9.000

Actually, in the above case,  ;:^:_1  probably isn't sufficient, due to layout 
and alignment, as in:
 
           1000001 _14 ((<1;1;0),(<0;0;2)) } i.  3 3 3
              0  1 _14
              3  4   5
              6  7   8
        
              9 10  11
        1000001 13  14
             15 16  17
        
             18 19  20
             21 22  23
             24 25  26

so maybe in the re-implementation of dyad  ":  only the individual scalar 
numbers should be formatted with  8!:0  .  The the spacing and layout should be 
left to the current algorithm.

-Dan
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to