The partitioning modifiers (u/ u/\ etc.) can create several pleasing identities that don't hold for cyclic gerunds.

The key insight is that u"n is a partitioning modifier.  It is the simplest one, the one where partition=cell.

This was not understood when J was defined.  u"n is defined to do two things: partitioning and assigning a rank for combining purposes.

The other partitioning modifiers have rank _ .  If u"n had been defined to have combining rank _, symmetry would be preserved.

And, we wouldn't need @: .  u@(v"n) would do what @: does now.

OTOH, we would need a new primitive to assign combining rank, for the cases where that's needed (especially for names).

It goes without saying that no one is suggesting that these changes should go into the J language.

Henry Rich

On 12/26/2021 4:54 PM, Raul Miller wrote:
On Sun, Dec 26, 2021 at 2:53 PM Henry Rich <[email protected]> wrote:
You meant to use rank 0.
Ah, I see...

Sadly, this defeats the concept of rank, breaking a simple identity
involving rank and functions:

    F=:*:`]"0
    (F -: F"F) ,~3
0

That problem would go away if the cyclic mechanism had been deployed
on items within the given rank rather than items selected by the rank.

I wish I had noticed this sooner.

But I guess maybe sometimes there just aren't any good options...

Thanks,



--
This email has been checked for viruses by AVG.
https://www.avg.com

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

Reply via email to