public TReturn Bounce(T1 initialInput) { Operator.ChangeInput(initialInput); while (!Operator.Stopping) { Operator = Operator.Work(Operator.Input, Operator); } return(Operator.Result); }
private Trampoline2(Func <T1, RecursionOperator <T1, TReturn>, RecursionOperator <T1, TReturn> > work) { Operator = new RecursionOperator <T1, TReturn>(work); }