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

Reply via email to