I am basically a practical guy, but I find this interesting.
I was thinking about monadic sequencing, and there are a few things I need to clarify. Thus, at the risk of seeming stupid here is this:
Monadic member binds
bind :: mb -> (b -> mc) -> mc
can perform a sequence of actions, giving you explicit access to intermediate values.
As this gives me more than a categorical member (.) :
(.) :: cat bc -> cat ab -> cat ac
With this, I can sequentially access intermediate values. In the end (f . g) x = f(g (x)) .
Why do I need bind for sequencing if I can execute a sequence with (.) ?
source share