A monadic reasoning around function composition in Golang
Introduction Function composition is something we as developers do every day, more or less. This concept come from Mathematics: if you search on Wikipedia, you find out that function composition is an operation that takes two functions f and g and produces a function h such that h(x)=g(f(x)). In this operation, the function g is applied to the result of applying the function f to the input x. That is, the functions f:X→Y and g:Y→Z are composed to yield a function that maps x in X to g(f(x)) in Z. ...