got it, tnx

On Wed, 2014-07-23 at 16:51, Stefan Karpinski <ste...@karpinski.org> wrote:
> Not quite. Note the initial /. When you do `using M` or `import M` it is
> like `cat /M` – it is relative to the root of the module system, not the
> current level of module. When you do `using .M` it is like `cat M` or `cat
> ./M` – it is relative to the current module. Otherwise when you wrote
> `using Gadfly` in your package, it would go looking for Gadfly inside your
> current module, which is unlikely to be where it is – unless you happen to
> have your own submodule called Gadfly, which is, of course, possible. If
> that's what you wanted, then you would use a relative import: `using
> .Gadfly`.
>
>
> On Wed, Jul 23, 2014 at 8:34 AM, Mauro <mauro...@runbox.com> wrote:
>
>> On Wed, 2014-07-23 at 16:29, Stefan Karpinski <ste...@karpinski.org>
>> wrote:
>> > Main is the root module so /T and ./T are the same thing in Main.
>>
>> but doesn't the same hold for any other "folder"?
>>
>>    /MyMod/T and /MyMod/./T are the same thing
>>
>> > On Wed, Jul 23, 2014 at 3:36 AM, Mauro <mauro...@runbox.com> wrote:
>> >
>> >> It still needs relative imports with one dot:
>> >>
>> >> julia> module A
>> >>        module B
>> >>        foo()=4
>> >>        export foo
>> >>        end
>> >>        using .B
>> >>        foo()
>> >>        end
>> >>
>> >> Which is a bit odd.  Because at the REPL, which is in module Main, this
>> >> is not needed.  This both works:
>> >>
>> >> julia> module T
>> >>        end
>> >>
>> >> julia> using .T
>> >>
>> >> julia> module U
>> >>        end
>> >>
>> >> julia> using U
>> >>
>> >> Does anyone know why this difference is?
>> >>
>> >>
>> >> On Wednesday, July 23, 2014 5:56:08 AM UTC+1, ggggg wrote:
>> >>>
>> >>> Ok I see how that works, I wasn't aware of the ..C syntax. That solves
>> >>> the problem asked about, but I'm left with another question. Take for
>> >>> example
>> >>>
>> >>> module A
>> >>> module B
>> >>> foo()=4
>> >>> export foo
>> >>> end
>> >>> foo()
>> >>> end
>> >>>
>> >>> That doesn't work, I get "ERROR: foo not defined" because foo is not
>> >>> actually in the A namespace. But if I add "using B" I get "ERROR: B not
>> >>> found". So how do I define B inside A, but also have A import the
>> things
>> >>> that B exports?
>> >>>
>> >>>
>> >>>>
>>
>> --
>>

-- 

Reply via email to