> The offspring is basically a module source code. Due to GP's crossover and > mutation functions, the offsprings source code can suggest function > redefinitions in (atleast) two ways. For example
You might consider a customized module language that's more amendable to the kinds of code mutations you're considering. That is, it's possible to have a language variant of Racket where "define" acts like redefinition at the module toplevel. I have an example of something like this in my Arctangent toy language (Refernce: see the definition of 'def' in https://github.com/dyoo/arctangent/blob/master/language.rkt) I don't think redefinition should be the default, given that standard Racket's approach is to generally make mutation an explicitly represented feature. That is, if I want to see that something stays the same, I grep for 'set!' in my code, and if I don't see it, I can assume that I don't mutate my toplevel. ____________________ Racket Users list: http://lists.racket-lang.org/users