During the execution of twice, the value func is set to is 'func';
hence the stack error.  You could use

func =. u f.

Henry Rich

On 4/13/2011 5:18 AM, Ben Gorte - LR wrote:
> Dear J programmers,
>
> A small adverb:
>
>     twice =: 1 : 0
> func =. u
> func func y
> )
>
> The local assignment to func does not make much sense, but the question is: 
> is it allowed? Well, it seems so:
>
>     *: twice i.5
> 0 1 16 81 256
>
> but I should not give it a function with the same name as my local one:
>
>     func =: *:
>     func twice 3
> |stack error: func
> |   func     func y
>
> I expected this to be okay. Why isn't it?
>
> Ben
> ----------------------------------------------------------------------
> 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