Great, thanks Mauro, most helpful.

On Friday, April 1, 2016 at 4:09:30 PM UTC+11, Mauro wrote:
>
> Maybe like so: 
>
> julia> module Myfunc 
>           export f 
>           f(x) = g(x) * g(x) 
>           function g end 
>        end 
>
> julia> using Myfunc 
>
> julia> f(4) 
> ERROR: MethodError: `g` has no method matching g(::Int64) 
>  in f at none:3 
>
> julia> Myfunc.g(x) = 2x 
> g (generic function with 1 method) 
>
> julia> f(4) 
> 64 
>
> On Fri, 2016-04-01 at 05:39, jock....@gmail.com <javascript:> wrote: 
> > Hi all, 
> > 
> > This works: 
> > f(x) = g(x) * g(x) 
> > g(x) = x + 1 
> > f(2)    # 9 
> > 
> > That is, f(x) isn't fully defined until g is defined. 
> > 
> > But if f(x) is in a module it doesn't work: 
> > module myfunc 
> >    export f 
> >    f(x) = g(x) * g(x) 
> > end 
> > 
> > using myfunc 
> > g(x) = x + 1 
> > f(2)   # ERROR: UndefVarError: g not defined 
> > 
> > That is, myfunc.f(x) cannot access global g(x) if g(x) is defined after 
> > myfunc (or even before). Is it possible to enable myfunc.f to "see" g? 
> > Any other ways to achieve the same thing? 
> > 
> > Cheers, 
> > Jock 
>

Reply via email to