Anonymous verbs do not *have* a locale. Locale is an aspect of names and how things are named.
-- Raul On Thu, Apr 6, 2017 at 2:11 PM, 'Pascal Jasmin' via Programming <programm...@jsoftware.com> wrote: > >> > 0. Any anonymous verb directly created by adverb will have the locale the > same as the adverb. > 1. Ditto for conjunction. > 2. Any train of verbs will have the implied locale where they are created. > > > This is a change I could live with but still strongly dislike. I will repeat > the loc and locs definitions which help a lot. > > Basically a "semi-tacit" modifier has the control to set the locales of its > return value. semi-tacit modifiers execute within their own locale, and so > have the complete control over the localization of names. In the case of > running the resulting expression in the caller's locale, it doesn't need to > do anything. I won't repost inl, but that is also a tool that solves all > issues in this thread. > > > loc_z_ =: (,&'_'@[ ,&'_'@, ":@>@])"1 0 boxopen > locs_z_ =: 1 : 'm loc 18!:5 ''''' > > > adv_far_ =: 1 : 'u@(''a'' locs~) ' NB. will localize to an instance of far > too. > > a_far_ =: + > > 3 +: adv_far_ 2 > 10 > > +: adv_far_ > +:@a_far_ > > explicit version does not work. It produces an expression that will be > parsed in caller's locale... an expression that can be saved to a name in any > locale. Would be a very big change to change 1 : behaviour. > > > advE_far_ =: 1 : 'u@(''a'' locs~) y' > +: advE_far_ > +: (1 : 'u@(''a'' locs~) y') > > If a change is pursued, instead of changling 1 : , and 2 :, create 5 : and 6 : > > where 5 : is identical to 1 :, except that if it is executed from a name then > that execution occurs in that name's locale. Similar for 6 : > > > ________________________________ > From: Xiao-Yong Jin <jinxiaoy...@gmail.com> > To: "programm...@jsoftware.com" <programm...@jsoftware.com> > Sent: Thursday, April 6, 2017 11:17 AM > Subject: Re: [Jprogramming] locales with adverbs and conjunctions? > > > > >> On Apr 4, 2017, at 7:11 PM, Henry Rich <henryhr...@gmail.com> wrote: >> >> I have been thinking about this & I don't see a better solution than Raul's. >> @Raul: think about putting something in NuVoc explaining this. >> >> I thought at first: should the anonymous verb created by >> >> verb adv_locale_ >> >> automatically be executed in (locale)? That would solve the immediate >> problem. >> >> But it leaves us with the responsibility of defining a locale for every >> anonymous verb. What locale should we assign to: >> >> (V0 V1_locale_ V2) >> >> (V0_locale0_ V1_locale1_ V2_locale2_) >> >> (V0_locale0_ V1) >> >> ? > > I failed to see what is the problem here with giving a locale for every > anonymous verb. > What about this rule? > 0. Any anonymous verb directly created by adverb will have the locale the > same as the adverb. > 1. Ditto for conjunction. > 2. Any train of verbs will have the implied locale where they are created. > > So, given > cocurrent'l0' > The anonymous verb, > (v0 v1_l1_) adv_la_ conj_lc_ (v2_l2_ v3_l3_) > as a whole will have a locale lc, > while the part '(v0 v1_l1_) adv_la_' have the locale la, > the part 'v0 v1_l1_' have the locale l0, > and the part 'v2_l2_ v3_l3_' have the locale l0 (though it does nothing since > v2 and v3 have their locale set). > > At least this was what I thought before discovering that adverb and > conjunction do different things in the current implementation. > > > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm