yes! that would fix it! thanks!
On Saturday, 28 December 2013 11:34:58 UTC-3, John Myles White wrote: > > Haven’t had time to read through this in depth, but is your concern that > abstract types can’t contain fields? That is likely to get fixed at some > point in the future. > > — John > > On Dec 28, 2013, at 9:31 AM, andrew cooke <and...@acooke.org <javascript:>> > wrote: > > > thanks. i've done almost exactly the same thing with the "Nothing" type > at > https://github.com/andrewcooke/BlockCipherSelfStudy.jl/blob/master/src/GA.jl > > > > i don't think my problem is specific to GA. the problem is how to add > extra state to an api. > > > > in traditional OO you can use inheritance to create a new class with the > extra state. > > > > in julia you cannot. nor can you add it inside closures because you > can't (as far as i can tell) extend methods in another module with a > closure. > > > > so instead you have to spot ahead of time that a user might want to add > extra state and provide an additional parameterized field (the "context" in > my code linked to above) where the user can store arbitrary information. > > > > which seems ugly and prone to errors (what if you miss somewhere)? > > > > so i still hope there's a better solution. > > > > cheers, andrew > > > > On Saturday, 28 December 2013 04:50:11 UTC-3, Toivo Henningsson wrote: > > I don't have enough background in genetic algorithms to understand what > you are trying to accomplish, but I think that to answer the question of > how to write code so that it can be generally extended by users, the first > thing to ask is what the interface to the code that you want to write > really is (in abstract terms). Then, one can start to model it with types, > generic functions, inheritance, etc. > > > > Also, to create a generic function without actually providing any > implementations, I've lately been using things like > > > > f(::None) = nothing > > > > which seems to work fine. > > > > > >