Parameterized/Abstract modules

Dan Gudmundsson dgud@REDACTED
Wed Mar 9 11:32:54 CET 2005

Maybe "static" functions, atleast I want define/overload the
constructor and check the arguments and do some init work, before
returning the module/object to the caller.

Hmm, the proposal with a erlang:create_parameterized_module(?MODULE, [Params]).
opens up the possibilty to change the parameters as well, by returning a new
module in the calls. 

A0 = tree:new(this),
A1 = A0:insert(turns_erlang),
A2 = A1:insert(towards_oo),

Good or bad?

Code upgrades on these modules are hard aswell, you can never change the
length of the parameter list..


Vlad Dumitrescu writes:
 > ----- Original Message ----- 
 > From: "Raimo Niskanen" <raimo@REDACTED>
 > > I.e. I want to have functions that can be called without being
 > > parameterized (sp?).
 > You mean something like "static" functions?
 > The problem as I see it is that the APIs are usually located in the same file as
 > the implementation. For abstract modules, it isn't as easy to use, because the
 > module name is no longer an atom, but has to be passed around in a variable.
 > Maybe separating the API from the implementation isn't a bad idea even for
 > normal gen_servers and friends...
 > Regarding the issue at hand, the compiler could check that the module variables
 > are not referenced inside that function, and that it only calls such static
 > functions (or external ones, of course) and generate them in a separate internal
 > module. Or actually, the parametrized module would be differently named (because
 > static calls should use the name in the source file).
 > regards,
 > Vlad

Dan Gudmundsson               Project:    Mnesia, Erlang/OTP
Ericsson Utvecklings AB       Phone:      +46  8 727 5762 
UAB/F/P                       Mobile:     +46 70 519 9469
S-125 25 Stockholm            Visit addr: Armborstv 1 

More information about the erlang-questions mailing list