June Kim wrote:
> I think "apply to all axis" is sometimes useful in some cases such as:
> reversing on all axis:
I responded:
>The most fun way to do this is:
>
> ];.0 y
Currently, u;.0 y means "apply u to y after reversing y along each
axis; it is equivalent to (0 _1 */$y) u;.0 y ". This and related threads
suggest a better definition. What do Jers think about the following proposal?
Let u;.0 y be changed to mean "apply u along each axis of y". That is,
let it solve the problem which is the topic of this and related threads (the
question is raised often enough that it is almost a FAQ).
Formally, let
u;.0 y <==> 0&|:@:u^:(#@:$) y
I doubt the monad u;.0 finds much use in the wild; for the few exceptions,
converting from the old definition to the new will be painless. Anyone who
currently uses the current definition of u;.0 y can simply replace the
expression with u |.;.0 y or (0 _1 */$y) u;.0 y after the change. Verb
definitions with the monad u;.0 embedded may simply subsitute @:(|.;.0) for
;.0 .
Objections? Seconds? Comments?
-Dan
PS: If adopted, the proposal would save me having to complete my Essay. Which
I may never do anyway. In which case the adoption would ease my guilt :)
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm