This paper describes a new approach to optimization that uses a novel representation for the parameters to be optimized. By using genetic programming, the method evolves a population of functions. The purpose of such functions is to transform initial random values of the parameters into better ones. The representation is, in principle, independent of the size of the problem being addressed. Promising results are reported, comparing the new method with differential evolution, particle swarm optimization, and genetic algorithms, on a test suite of benchmark problems.