In case it was hard to follow in my wall of code, I'd say the issue is that 
code in script files doesn't behave as code in immediate window... in the case 
of modifiers.


----- Original Message -----
From: Raul Miller <[email protected]>
To: Programming forum <[email protected]>
Cc: 
Sent: Saturday, November 16, 2013 10:39:42 PM
Subject: Re: [Jprogramming] bug in conjunction locales?

The issue, I think, is that (except for verbs) names are resolved to
their definitions before their definitions are used.

   require 'trace'
   trace 'verb_dog_ conj_cat_ %'
--------------- 4 Conj -------
verb_dog_
2 : 'u&.(v inv)'
%
verb_dog_&.(%^:_1)
==============================

Notice how the verb is named and the conjunction is not.

I remember there being an explanation for this but I do not remember
if that was grounded in "efficiency concerns" or in dictionary.

Thanks,

-- 
Raul


On Sat, Nov 16, 2013 at 10:15 PM, Pascal Jasmin <[email protected]> wrote:
> to narrow the bug down, it seems to apply just to script files with 
> definitions entered under cocurrent: (even when explicitly named with locale 
> outside it.).  Bug applies to j8 and j7.
>
> continuing previous example:
>
>    b =: conew 'cat'
>    a__b
> 2
>
>    >: conj__b ] 1
> 3
>
> updated code file:
>
> cocurrent 'myl'
> a=: 4
> c =: 2 : 0
> smoutput 18!:5 ''
> u a v y
> )
>
> v =: 4 : 0
> smoutput 18!:5 ''
> x + y
> )
>
> cocurrent 'base'
>
> c2_myl_ =: 2 : 0
> smoutput 18!:5 ''
> u a v y
> )
>
>    c =: conew 'myl'
>    a__c
> 4
>
>    +:  c__c + 3
> ┌────┐
> │base│
> └────┘
> 20  NB. wrong a=7 from base used instead of 4.
>
>    +:  c2__c + 3
> ┌────┐
> │base│
> └────┘
> 20
>    +:  c2_myl_ + 3
> ┌────┐
> │base│
> └────┘
> 20
>
>
>
> ----- Original Message -----
> From: Pascal Jasmin <[email protected]>
> To: "[email protected]" <[email protected]>
> Cc:
> Sent: Saturday, November 16, 2013 9:22:17 PM
> Subject: Re: [Jprogramming] bug in conjunction locales?
>
> when I define these in j8 repl, it works as I'd want
>
> conj_cat_=: 2 :'v@:u^:a'
>
>
>    >: conj_cat_ ] 1
> 9
>    >: ^:8 ] 1
> 9
>
> this is also the 'right' answer:
>    >: conj_cat_ ] a
> 15
>    >: ^:8 ] 7
> 15
>    a_cat_=: 2
>    >: conj_cat_ ] a
> 9
>
> The issue is entirely related to accessing variables at time of definition.
>
>> I think you have said that the value of 'a' should be 8 because itmakes no 
>> sense for it to be 5. But, it's actually 9.
>
> The a accessed in verb_dog_ should indeed be 9.  For definitions entered in 
> J7 files within a cocurrent context, the locale for a conjunction is wrong... 
> it is the callers.  It is correct for a verb.
>
>
>
>
>
> ----- Original Message -----
> From: Raul Miller <[email protected]>
> To: Programming forum <[email protected]>
> Cc:
> Sent: Saturday, November 16, 2013 8:52:16 PM
> Subject: Re: [Jprogramming] bug in conjunction locales?
>
> What do you mean by "execute"?
>
> Consider this example:
>
>    a_cat_=: 8
>    a_dog_=: 9
>    a=: 7
>    conj_cat_=: 2 :'u&.(v inv)'
>    verb_dog_=: do bind 'a'
>    thingy=: verb_dog_ conj_cat_ %
>    thingy 5
>
> I think you have said that the value of 'a' should be 8 because it
> makes no sense for it to be 5. But, it's actually 9.
>
> Conceptually speaking, conjunctions are executed multiple times - they
> have both "parse time" and "execution time" semantics. And, given your
> logic, I think you are talking about their "parse time behavior", not
> their "execution time behavior".
>
> Does this distinction sound meaningful to you?
>
> Thanks,
>
> --
> Raul
>
>
> On Sat, Nov 16, 2013 at 6:25 PM, Pascal Jasmin <[email protected]> wrote:
>> I feel as though conjunctions defined inside a locale should have their 
>> current locale state when executed be that locale.  It makes no sense for it 
>> to be the caller's.
>>
>> The reason it is a big issue is that the conjunction may wish to access 
>> member data.
>>
>>
>> cocurrent 'myl'
>>
>> c =: 2 : 0
>> smoutput 18!:5 ''
>> u v y
>> )
>>
>> v =: 4 : 0
>> smoutput 18!:5 ''
>> x + y
>> )
>>
>>
>>    3  v_myl_ 2
>> ┌───┐
>> │myl│
>> └───┘
>> 5
>> +:  c_myl_ +: 2
>> ┌────┐
>> │base│
>> └────┘
>> 8
>>
>> ----------------------------------------------------------------------
>> 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
> ----------------------------------------------------------------------
> 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