MotivationA fundamental concept in functional programming is composition. It simply describes the mechanism by which we combine simpler things to build more complicated things, then combine the new resulting things to build higher-complicated things and so on. With composition, you never hit a wall, because you must always ask yourself “What is the return value of this function ?”, or put another