Explicit Names Changed |
initial writing: 2006-01-26 last updated: 2006-02-13 |
In an explicit definition, a name assigned by the copula =. is
made local. A name assigned by =: is global, except that
global assignment to a local name is not permitted.
Locative assignment (using either =: or =.) is always global.
The arguments in an explicit definition have been changed to x y u v m n
from x. y. u. v. m. n. . For example:
pow=: 4 : '*/ *:^:(I.|.#:y) x' " 0 3x pow 12 50 531441 717897987691852588770249
For compatibility, use of x. etc. will be permitted,
and existing explicit definitions will continue to work except
if they use x etc. as global names.
The effects for a dyadic verb are as follows:
J 5.04 | J 6.01 | |
foo=: 4 : 0 x.=. (left argument) y.=. (right argument) (rest of verb) ) |
foo=: 4 : 0 x=. x.=. (left argument) y=. y.=. (right argument) (rest of verb) ) |
The Explicit Argument Names flag is a temporary facility that
controls whether the names x. y. u. v. m. n. are
permitted. 9!:48 queries the flag; 9!:49 sets it.