Subject: Re: [Jgeneral] Interpreter Bug

From: Raul Miller <[email protected]> wrote:

> My reading of these two concepts suggests that x and y are sometimes
> prohibited as global names.  And, it's easy enough to conduct an
> experiment to test this concept:
>
>   3 :'y=:0' 0
> |domain error
> |   y    =:0


This is not because y is forbidden as a global name.
The definition of =: was changed in J 6 to forbid a global assignment to
an unlocalized name that have already been defined locally, because such
assignments are most frequently the result of typographical errors.
So you could assign m n u v or x in the above verb, but not y.
Note that you CAN do it if it has a locale:
   3 : 'y__=:0' 0
0
   y
0

As an amusing side-note, =. will make global assignments to localized names:
   3 : 'y__=.42' 0
42
   y
42

> Yes, originally, the language used x. y. u. v. m. n.
>
> However, this caused problems with the syntax for locales.

Yes. Now you can say name_y_, but before J 6 you would have needed to say
name_y._ which is forbidden by J rhematic rules.

-- Mark D. Niemiec <[email protected]>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to