internal Store(Reducer <S, A> reducer, S state, params Func <Func <S>, Action <A>, Func <Action <A>, Action <A> > >[] middleware) { Reducer = reducer; State = state; Dispatcher = action => State = Reducer.Reduce(State, action); Dispatcher = middleware.Combine()(() => State, Dispatcher)(Dispatcher); }
internal Store(Reducer <S, A> reducer, S state) { Reducer = reducer; State = state; Dispatcher = Act <A>(action => State = Reducer.Reduce(State, action)); }