x._base_=.1 2 3 |spelling error | x._base_=.1 2 3 | ^
2011/9/26 Don Guinn <[email protected]> > Well, you can get around assigning x and y globally within a function > with local copula by adding the locale to the name, like x_base_=.1 2 > 3. > > But I don't understand what is meant that periods after x and y mess > up locale assignments. > > On Mon, Sep 26, 2011 at 10:51 AM, The Geeko <[email protected]> wrote: > > Raul Miller <rauldmiller@...> writes: > > > >> Have you read the second paragraph here: > >> http://www.jsoftware.com/help/dictionary/d001.htm > >> > >> or footnote 3, here: > >> http://jsoftware.com/help/dictionary/d310n.htm > > > > Yes, I have read these passages several times... > > > >> > >> ? > >> > >> 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: > > > > No. The way I understand it is that, once you define a name as local > using the > > local copula ('=.'), you may not use the global copula ('=:') to assign a > value > > to it. Within a verb's definition, the local copula is automatically > provided > > for one or more of {x, y, m, n, u, v} depending on contextual > considerations. > > > >> > >> 3 :'y=:0' 0 > >> |domain error > >> | y =:0 > >> > >> So it looks to me as if the implementation matches the dictionary... > > Again, no. The error in the case you have presented is instructing you > that you > > have used incorrect syntax; there is a superfluous 0 at the end of the > sentence > > which is outside the script. > > > > But, you are on the right path... if you try to make a global assignment > to y > > *from within* your verb definition, you will get an error. That is > stipulated > > in the Dictionary. When your verb is defined, it is automatically > allocated a > > local variable y (and perhaps others as well -- x, m, etc.). Because of > this, > > you may not -- from within the function -- use a global copula to assign > a value > > to y. > > > > However, in an interactive session, you may have reason to define a > global y. > > Indeed, this is permissible by the language. And even namelist, a > prominent > > verb of the language, correctly reports its existence. > > > >> > >> Yes, originally, the language used x. y. u. v. m. n. > >> > >> However, this caused problems with the syntax for locales. > > Aha! Thank you for this insight! I supposed that there was a logical > > explanation. > > > >> Arguably, the fault is in the syntax for locales rather than in those > >> names. That said, changing how locales work would have been a huge > >> change and may have introduced additional issues. > > Understood. > > > >> So, if we went back to the old way of doing things, and if y. is a > >> reference to an object, how do we access the object? > > I will need to study this area more... but I do know this: we can still > use x., > > y., m., n., u. and v. All we need to do is to use the !: foreign > conjunction > > (i.e., 9!:49). > > > > > >> Anyways, consistency is only good when it achieves something useful. > >> Language implementations routinely break consistency when the language > >> implementer deems the issue worthy. Thus, for example, in C, you > >> cannot do: > >> > >> int default= 0; > >> > > Of course I cannot make that assignment, since *default* is a reserved > word in > > C. Yet, again, I will beg to differ with you on the point of > consistency. > > Consistency is always good when it comes to language > design/implementation. > > Breaking rules should only be done when necessary. > > > > > > > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > -- Björn Helgason, Verkfræðingur Fornustekkum II 781 Hornafirði, t-póst: [email protected] gsm: +3546985532 twitter: @flugfiskur http://groups.google.com/group/J-Programming Tæknikunnátta höndlar hið flókna, sköpunargáfa er meistari einfaldleikans góður kennari getur stigið á tær án þess að glansinn fari af skónum /|_ .-----------------------------------. ,' .\ / | Með léttri lund verður | ,--' _,' | Dagurinn í dag | / / | Enn betri en gærdagurinn | ( -. | `-----------------------------------' | ) | (\_ _/) (`-. '--.) (='.'=) ♖♘♗♕♔♙ `. )----' (")_(") ☃☠ ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
