Hey Raul,

Great explanations of the stack in this thread. I played around for a bit and I 
think I figured what is happening in your third case. 

 do_a_ 'g_b_=:f'  

   g_b_
┌─┐
│f│
└─┘
   g_b_ ''
4

So g_b_ has the verb f stored but it is only f by name. If you use the f. 
adverb you can see that what happens is closer to what you expect. 

   do_a_ 'g_b_=:f f.'  

   g_b_
┌──┐
│3:│
└──┘
   g_b_ ''
3

I didn't expect it either, but maybe I should have, as it is consistent with 
how named verbs are assigned. When g_b_ is executed the locale is _b_ and f is 
evaluated as f_b_

g_b_=: f
   g_b_
┌─┐
│f│
└─┘
   g_b_ ''
4

Or without locales:

f=: 8:
   g=:f
   g
┌─┐
│f│
└─┘
   f
┌──┐
│8:│
└──┘


This is what separates me from Dan. I am able to find things, he can explain 
them. :)

Thanks for raising the question.

Cheers, bob

On 2013-10-03, at 9:19 PM, Raul Miller wrote:

>  f_a_=: 3:
>   f_b_=: 4:
>   do_a_ 'g_b_=: f'
> 
>   g_b_ ''
> 4

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to