Abstract
We demonstrate a functional style recursion
implementation to evolve recursive programs. This
approach re-expresses a recursive program using a
non-recursive application of a higher-order function.
It divides a program recursion pattern into two parts:
the recursion code and the application of the code.
With the higher-order functions handling recursion code
application, GP effort becomes focused on the
generation of recursion code.
We employed this method to evolve two recursive
programs: strstr C library function and programs that
produce the Fibonacci sequence. In both cases, the
program space defined by higher-order functions are
very easy for GP to find a solution. We have learned
about higher-order function selection and fitness
assignment through this study. The next step will be to
test the approach on applications with open-ended
solutions, such as evolutionary design.
- abstraction,
- algorithms,
- fibonacci
- filter,
- foldr,
- functional
- functions,
- genetic
- haskell
- higher-order
- lambda
- languages,
- patterns,
- polygp,
- programming
- programming,
- recursion
- recursion,
- scanr,
- sequence,
- strstr,
- systems,
- type
Users
Please
log in to take part in the discussion (add own reviews or comments).