illustration for Redux and the State ADT

Redux and the State ADT

1h 38m closed-captioning
Star icon$$$
Star icon$$$
Star icon$$$
Star icon$$$
Star icon$$$
4.5
68
people completed
Bookmark
Download
RSS

At a high level Redux is just a dispatching system, sitting atop a finite state machine, driving our application state. It just so happens that the State ADT is good at modeling a finite state machine. It allows us to represent our stateful transactions in discrete, easily composed transactions. We can create complicated stateful transitions by composing many simple transitions into one state transaction. By using the State ADT, we should be able to model all of our application state transitions and provide a single reducer function to Redux that integrates with our state machine model.

We’ll put this theory to the test by building a Memory type game called “Anger The Bunny”. We start of by defining our state transitions using the State ADT, starting with simple, discrete transactions and using them to create the complex transitions typical of any game. Then once we have a majority of our game logic implemented, we will integrate those with Redux.

Learner Reviews

  • Pavel
    a year ago
    Star icon$$$
    Star icon$$$
    Star icon$$$
    Star icon$$$
    Star icon$$$
    What did you like about this course?

    Great course

    1. good choice of task, not boring TODO list
    2. tons examples of using FP and ADT
    3. interesting point of view for handling app state in redux
    4. cool bunny :)
  • Daniel Laubacher
    a year ago
    Star icon$$$
    Star icon$$$
    Star icon$$$
    Star icon$$$
    Star icon$$$
    What did you like about this course?

    The examples of using combinators, monads, and the state ADT where excellent. Thanks.

  • Fernando H-T Goldáraz
    2 years ago
    Star icon$$$
    Star icon$$$
    Star icon$$$
    Star icon$$$
    Star icon$$$
    What would make this course a 7 for you?

    Any reference to resources one can use to learn what's not explained: what is a functor, applicative, monad, kleisli composition, lifting, ADTs, and FSMs, redux, react etc.

    That way there's somewhere to go before one can come back when ready to get this more fully

  • Stefan Frede
    2 years ago
    Star icon$$$
    Star icon$$$
    Star icon$$$
    Star icon$$$
    Star icon$$$
    What did you like about this course?

    It is a joy to watch and follow along!

  • Zhentian Wan
    2 years ago
    Star icon$$$
    Star icon$$$
    Star icon$$$
    Star icon$$$
    Star icon$$$
    What did you like about this course?

    Thanks for the course!

    It was a great course and great journey following alone the course! Have learnt a lot and I think I will go though multi times to master what I have learned.

  • Luis Caligaris
    2 years ago
    Star icon$$$
    Star icon$$$
    Star icon$$$
    Star icon$$$
    Star icon$$$
    What did you like about this course?

    I enjoy the practical application of the State monad on a real exercise combined with other libraries. I also really enjoy videos that makes me pause them and look into the code because the exercise contains more information that what is only described through the audio. To me this shows the quality of the example code/project being shown and the effort put by the instructor. I also liked seeing a video with crocks lib in action, I have seen Ian’s work on crocks on youtube and the state monad course in egghead. I am currently on a transition implementing more and more functional style on my code and evilsoft and egghead have been a great source of knowledge. Thanks Ian

Course Content

1h 38m • 26 lessons

    You might also like these resources:

    illustration for Introduction to Cloudflare Workers

    Introduction to Cloudflare Workers

    Kristian Freeman・36m・Course

    Become familiar with the Workers CLI wrangler that we will use to bootstrap our Worker project. From there you'll understand how a Worker receives and returns requests/Responses. We will also build this serverless function locally for development and deploy it to a custom domain.

    illustration for Create an eCommerce Store with Next.js and Stripe Checkout

    Create an eCommerce Store with Next.js and Stripe Checkout

    Colby Fayock・1h 4m・Course

    This is a practical project based look at building a working e-commerce store using modern tools and APIs. Excellent for a weekend side-project for your developer project portfolio

    illustration for Practical Git for Everyday Professional Use

    Practical Git for Everyday Professional Use

    Trevor Miller・1h・Course

    git is a critical component in the modern web developers tool box. This course is a solid introduction and goes beyond the basics with some more advanced git commands you are sure to find useful.