title: Variable visibility when defining functions inside functions with q
body: <p>I am defining a function that contains another function inside:</p>
  
  <pre><code>find_badTicks:{ [tab;sec] // dummy function, for debug..
    Ndays: 10i ;
    dates: select distinct date from tab where sym = sec ;
    closures: select last price by date from tab where sym = sec ;
    returns: 1 _ select ( (price)-(prev price) )%(prev price)  from closures  ;
    stdevs: {[x;y] sd[ (Ndays-1)#y _ x ] } [ (returns)[;`price] ] each til ( (1 - (Ndays-1)) + count (returns)[;`price] ) ;
    :tab 
  }
  </code></pre>
  
  <p>If I compile the function it works. If I run the lines one by one it works. However, if I try to call the function I get an error:</p>
  
  <pre><code>  q)testTab: find_badTicks [testTab ; `ENI.IM.Equity] ;
    'Ndays
  </code></pre>
  
  <p>If I remove Ndays in the nested function, writing explicitly 10, it works.
  Si I guess it's a problem of local variable visibility inside nested functions, in function execution: i.e. the nested function cannot see Ndays, which is a local variable of the function find_badTicks.
  Do you know how I can make Ndays visible inside inner functions?
  Thanks
  Marco</p>