I observe:

           <;.1^:_1 <;.1  '/obverse/reverse/inverse/converse/perverse'
        |nonce error
        |       <;.1^:_1<;.1'/obverse/reverse/inverse/converse/perverse'

That is, the inverse of  <;.1  is momentarily undefined.

I know the general definition of  <;.1^:_1  is a tricky problem.  However, 
there are simple cases where  ;  would suffice, and I request that they be 
implemented as such (as they once were).  The nonce error should be retained 
where  ;  is not obviously sufficient.

An example simple case is the above:  a vector of boxes where each box contains 
a vector (I can't think of a case where  <;.1  would produce boxed scalars, but 
perhaps the "simple case" could be generalized to include those, too).  This 
request applies to  <;.2  as well as  <;.1  (see postscript).

If this  request is implemented, I further request that special code which 
supports phrases of the form:

           ;@:(<@:u;.n)

be extended to support phrases of the form:

           u&.>&.(<;.n)

-Dan


PS:  For  <;._1  and  <;._2  , the case is not so clear.  Note the difference:

           <;. 1  b. _1    
        <;.1^:_1


           <;._1  b. _1
        |domain error
        |       <;._1 b._1

This may be justified, as negative cuts permanently lose information, and so 
cannot have true inverses.  Though, as I've noted before, there is some 
precedent for primitives which have useful, yet not "true", inverses.  The 
canonical example is:


           ;: b. _1
        }:@;@(,&' '&.>"1) :.;:

whence:

           (-: ]&.;:)  'lots   of  extraneous  blanks     '   
        0

So raze may suffice here, as well.  Or, if not raze, then perhaps the raze of 
the result of affixing a fill element within each box, as in:

   <;._1  :. ([: ; ({.~ -@:>:@:#)&.>)
   <;._2  :. ([: ; ({.~    >:@:#)&.>)

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

Reply via email to