Im from Scotland . Pretty non discriminatory when it comes to beer but I dont want to be wasting drinking time on beers from everywhere else when I ' m in a city . <| sep |> Download the music to your phone instead of streaming it , so you don ' t need service . <| sep |> What ? All the members of those subs deleting their accounts ? Why , that would be . that would be . <| sep |> Thanks for your explanation . But . I think many of the explanations I ' ve seen , including this one , suffer from the same problems The explanation copies terminology and function names from Haskell and co . which are redundant in PHP , or only serve to confuse i . e . unit is superfluous , we have a constructor . fmap is superfluous , we can call map $ fun directly . Once the definition of the primitives is given , the tutorial abruptly ends , leaving us with a big what was that about in our heads , as no examples are given . And when examples are given , they ' re always the identity and maybe monads , very rarely the list and IO monad . As if it ' s literally impossible to give another example , which speaks poorly for a concept touted as universal . Another thing is , in OOP languages we already implement variations of functors and monads , without calling them so , so the concept of flattening , mapping and wrapping values in objects are not foreign to OOP programmers . There are a bunch of highorder function equivalents in OOP languages , like dependency injection , strategy pattern , chain of command and so on .