I wrote:
> u"(f`g`h) y <=> u"( (f u b.0) g h&#&$ y)
> x u"(f`g`h) y <=> u"( (f u b.0) g x h&#&$ y)
I recognized the separation between monad and dyad could be cleaner. Since
the monad only cares about "monadic things" there is no reason for f to see
the dyadic ranks of u; similarly, since the dyad only cares about "dyadic
things" there is no reason for f to see the monad rank of u.
Thus, if mru is the monadic rank of u and lru and rru are the left and right
dyadic ranks of u (resp.), then I propose:
u"(f`g`h) y <=> u"( ( f mru) g h&#&$ y)
x u"(f`g`h) y <=> u"( (lru f rru) g x h&#&$ y)
The script:
http://www.jsoftware.com/svn/DanBron/trunk/environment/rank-reproposed.ijs
has been updated accordingly. I also added a (commented-out) clause to
support Ambrus' request, in case anyone wants to investigate that as well.
Again, totally untested & in need of examples & test cases.
Does anyone see a reason why f may be interested in all the ranks of u
simultaneously*, or have any other comments?
-Dan
* Besides that fact that the behavior above is derivable, given that
information, but the reverse isn't true?
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm