[erlang-questions] Multiple modules
Daniel Goertzen
goertzen@REDACTED
Sun Oct 8 01:11:35 CEST 2006
That starts to strongly resemble the way C++ namespaces work.
Using the mnesia app as an example, the app source files are well
decomposed into their functional areas, for example: mnesia_subscr.erl,
mnesia_controller.erl, mnesia_checkpoint.erl, etc. But the entire API
for mnesia is really exported through the module "mnesia", and
mnesia.erl contains lots of functions that just relay calls to other
modules. Wouldn't it make more sense for each of the files (ex,
mnesia_subscr.erl) to be able to directly export bits and pieces into
the mnesia module/namespace?
And this leads to the question of nested modules like C++ nested
namespaces. I've found that nested namespaces in C++ have helped me
keep names short and natural and remove concern over collisions.
Consider this erlang example:
Erlang makes me name stuff like this...
myapp:foo_dostuff(...)
myapp:bar_dostuff(...)
When I'd really like to say it like this...
myapp:foo:dostuff(...)
myapp:bar:dostuff(...)
Disclaimer: I've written large c++ programs, but not any large elrang
programs yet. Please correct me if I've missed out on some erlang feature.
Cheers,
Dan.
Costel Vrinceanu wrote:
> If we separate files from modules/make them orthogonal, then it should
> work both ways:
> N modules in 1 file
> or
> 1 module in N files
> or
> N modules in M files
>
> On 10/5/06, Joe Armstrong <erlang@REDACTED> wrote:
>
>> Modules ... thoughts
>>
>> Any opinion about and "endmod." declaration:
>>
>> Proposal
>>
>> The file myapp.erl might contain
>>
>> -module(foo).
>> ....
>> ....
>> -endmod.
>>
>> -module(bar).
>> ...
>> ...
>> -endmod.
>>
>> Compiling this produces
>>
>> myapp.beam
>>
>> loading myapp.beam loads all the code in foo, bar, ..., this
>> has several advantages:
>>
>> 1) distribute only one file
>> 2) modules in file cannot live a life of their own and become
>> separated
>> 3) code loading is faster
>>
>> /Joe
>>
>>
>>
>> _______________________________________________
>> erlang-questions mailing list
>> erlang-questions@REDACTED
>> http://www.erlang.org/mailman/listinfo/erlang-questions
>>
>>
>>
>>
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://www.erlang.org/mailman/listinfo/erlang-questions
>
>
>
More information about the erlang-questions
mailing list