[racket] Redefinition of initial bindings/ Resessive genes in GP

From: Danny Yoo (dyoo at hashcollision.org)
Date: Thu Jul 5 16:57:54 EDT 2012

> 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.

Posted on the users mailing list.