1. A method for constructing a program that is learned over training data, the program receiving an initial tuple of vectors in which each vector consists of an ordered set of real numbers, the method comprising: providing a first program structure, the first program structure provided for transforming each vector in an input tuple of vectors to provide an output tuple of vectors; providing a second program structure, the second program structure provided to operate on an input tuple of vectors to provide an output tuple of vectors by applying one or more transformations that each involves two or more vectors in the input tuple and by summing the results of the transformations; and alternatively executing the first program structure and the second structure a plurality of times, beginning with operating one of the program structures on the initial tuple of vectors.