> You are correct that SHARP APL did not have
> prefix agreement, nor did it support tolerant
> frame building. I'm remain unconvinced that either of
> these are good things to have at a primitive level.
> Like negative indexing, it turns domain errors into 
> results, and there's no way to turn it off. 
> I'd prefer to introduce conjunctions or
> adverbs to enable that behavior when I want it.

That being the case, then I suppose the 
tolerant frame building in the monad >y in 
mainframe SHARP APL was specified and 
implemented over your objections?  



----- Original Message -----
From: Robert Bernecky <[EMAIL PROTECTED]>
Date: Friday, December 21, 2007 14:04
Subject: Re: Subject: Re: [Jchat] J readability
To: Chat forum <[email protected]>

> 
> On Fri, 2007-12-21 at 13:06 -0800, Roger Hui wrote:
> > Bob Bernecky wrote:
> > 
> > > ... and it WAS one of the
> > > primary reasons Ken and I worked to develop a proper
> > > conjunction to supplant axis brackets, that I introduced into
> > > SHARP APL as the rank conjunction.
> > 
> > A few relevant facts:
> > 
> > - The rank operator was invented by Arthur Whitney in 1982,
> > who both recognized the problem with the axis operator and
> > invented its superior replacement.
> > See http://keiapl.org/rhui/remember.htm#22
> 
> You are correct, Roger. Ken and I tried a number of approaches
> over a year or so, but were never satisfied with any of them, because
> they were nightmares to look at. For example, we thought about
> providing something along the lines of dyadic transpose
> left arguments for the items specifying treatment of left 
> and right arguments of dyads, and right arguments of monads.
> This led us to "X foo AXIS (monadic;dyadicleft;monadicright) Y"
> and and the like. I did not like the idea of implementing
> anything like this, nor did I like the idea of having to
> write APL that used it.
> 
> I believe we were at the APL conference
> in Heidelberg when Arthur came up with the key idea of 
> defining operations on leading axes, rather than on trailing axes,
> and offering the idea that a single number (rank) could then
> be used in lieu of shape vector selection. I recall
> its simplicity as being a breath of fresh air. 
>  
> I implemented the rank conjunction over a weekend, just before
> a SHARP APL release cutoff. The restriction to primitive function
> operands was intended as a short-term nonce error, and
> was not the intended design. By this time, the SHARP APL
> architecture was showing its age, and re-engineering
> it was a non-trivial task that could not be performed
> over a weekend. Or a month, for that matter.
> The obvious extensions to non-primitive
> functions, as desirable as they are, were considered
> "important, but not strategic" by the new management. 
> Remember the time-frame when this was happening...
> 
> I suspect the SAX interpreter, of more recent
> vintage than the mainframe one,
> did have the composition capability.
> 
> You are correct that SHARP APL did not have
> prefix agreement, nor did it support tolerant
> frame building. I'm remain unconvinced that either of
> these are good things to have at a primitive level.
> Like negative indexing, it turns domain errors into 
> results, and there's no way to turn it off. 
> I'd prefer to introduce conjunctions or
> adverbs to enable that behavior when I want it.
> 
> I'm not sure offhand what J does with rank when a
> frame shape contains a zero and a non-uniform function
> is being applied. I should have signalled nonce
> error...
> 
> Bob
> 
> > - The rank operator in SHARP APL worked only on
> > primitive function arguments.  e.g. you can not say +/ 
> rank 1
> > 
> > - The rank operator in SHARP APL only had "scalar agreement".
> > i.e. The two arguments must have the same shape, or 
> > one argument must be a single cell.  The rank operator
> > in J has prefix agreement (also suggested by Whitney).
> > See http://www.jsoftware.com/jwiki/Essays/Rank
> > 
> > - The rank operator in SHARP APL did not have
> > tolerant frame building.  
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to