Thanks for the advice, I never noticed delay existed! It turns out I cannot put the fitness directly into the struct that contains individuals. It would mean that every mutating function would need to "reset" the fitness computation to avoid propagating a misleading fitness and that's clearly not their job. I can put it in the metadata and then it will not be carried on when I assoc and dissoc things in the struct. However, adding meta returns a new object that's the same as the old but with the meta added so I cannot add the fitness function to the metadata just before computation because other threads holding the data would keep their old objects.
Beside burdening my mutation functions with keeping the fitness up to date, I don't see what I can do. Is there something I'm missing? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---