1. A method for designing a learning system comprising: obtaining a plurality of samples from a plurality of time bounded events generated by a reference system, where said samples characterize the amount of time passed since corresponding said time bounded event started and corresponding said sample was taken, characterize a corresponding external input going into said reference system when corresponding said sample is taken, and characterize a corresponding observed output coming from said reference system when corresponding said sample is taken; implementing a dynamic system such that after it is reset it always produces a same intermediate output, where said intermediate output does not repeat itself within the temporal span of the events produced by said reference system; implementing a static system, whose inputs comprise said intermediate output and said external input, whose output is a generated output; and modifying the parameters of said static system using said samples and a training procedure, such that said generated output converges to said observed output produced by said reference system; whereby said learning system is able to produce said generated output arbitrarily close to said observed output when both said learning system and said reference system use the same said external input as input.