[Functional Programming ADT] Combine Multiple State ADT Based Redux Reducers
Posted answer1215
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Functional Programming ADT] Combine Multiple State ADT Based Redux Reducers相关的知识,希望对你有一定的参考价值。
Redux provides a convenient helper for combining many reducers called combineReducer
, but it focuses in on specific attributes on our state, making it incompatible with using the State ADT. We would like a way to avoid keeping all of our reducers in a single file and want the ability to still combine them in a manner that works with the State
ADT.
So we will put together our own helper that we also call combineReducers
, but explore how we can use the First
Monoid and mreduceMap
to get us all the power that the Redux helper provides, but setup for our unique needs. As a bonus we will get a sneak peak of the power of using the flip
combinator to create easy to read compositions without pesky argument juggling
// combineReducers :: [ Reducer ] -> Reducer /* export const combineReducers = reducers => action => mreduceMap(First, applyTo(action), reducers); */ // We take reducers first and action second, but we use action first, reducers second. // It is good case to use flip /* export const combineReducers = flip(action => mreduceMap(First, applyTo(action)) );*/ // We can use compose to remove action param, applyTo will get action // Then the return result will be passed into mreduceMap(First) export const combineReducers = flip( compose( mreduceMap(First), applyTo ) );
以上是关于[Functional Programming ADT] Combine Multiple State ADT Based Redux Reducers的主要内容,如果未能解决你的问题,请参考以下文章
python learning Functional Programming.py
Python5 函数式编程(Functional Programming)
[Functional Programming] propSatisfies with implies
[Functional Programming] Arrow Functor with contramap
[Functional Programming + React] Provide a reasonable default value for mapStateToProps in case init
[Functional Programming] Running though a serial number prediction functions for tagging, pairing th