Hi all,

I'm just writing with a broad question about how to structure a module in 
Julia.

For my own modules, I've tended to follow the example of the Distributions 
and Distances package, where each distribution (or distance) is its own 
type, and then there is a small number of generic functions (eg "evaluate") 
that use multiple dispatch to return the appropriate value depending on the 
input type. But I've seen source code in other packages that indicates a 
different strategy. For example, the Optim package appears (and please 
correct me if I'm wrong - I'm definitely not an expert) to have a different 
Symbol for each optimisation algorithm, and then uses if elseif statements 
to ensure the right optimisation procedure is called. A second strategy 
would be the SmoothingKernels package which appears to have a different 
function name for each kernel.

So my question: Is there a preferred "julian" way of doing things, or is it 
a case of whatever seems to be the best fit on a case-by-case basis?

Cheers,

Colin

Reply via email to