The math is the hardest part . I would do one door first before buying all the hinges to make sure you get the right ones . It ' s more tedious than challenging in my experience . <| sep |> Crowder has a better matchup . <| sep |> What are you saying ? I can ' t read this . <| sep |> So much incest it ' s practically written itself historically already <| sep |> One law for functors is map f . map g map f . g where . is function composition , i . e . f . gx fgx . Knowing that lists are functors , this law basically expresses the fact , that you only need to iterate a list once , even if you perform multiple transformations on the values in the list . Say you do some kind of accounting software and you have a list of prices of items . You might want to first give a discount on every item and then calculate the VAT for the remaining value . You could then do this in one iteration over the list , by applying the discount first and then calculate the VAT directly for every item , instead of iterating a first time to get the discount price and then iterate on these prices to get the VAT . This might be fairly obvious when the example is presented like this , but imagine a real world situation where you might or might not give the discount and maybe also have some other transformations on the price , maybe even depending on item properties . Would you have seen the possibility to first stack all required transformations and then apply them at once to every item ? Knowing that list is a functor makes this a lot more obvious to me .