How do you pronounce '4 + 5'? It's easy, because you don't try to pronounce '+', you pronounce 'plus'. With '>>=', there are a few names that all mean the same thing.
There are two primary names, 'bind' and 'chain', and a description 'feed':
bind (the result of) m to (the input of) f
chain (the result of) m into f
feed m to f
There are probably a couple more things that can be said, in different contexts, but these three cover the majority use case.
That those terms are not mentioned in the article (titled "What I Wish I Knew When Learning Haskell", so apparently meant for people being new to the concepts) is my actual criticism. The ability to instinctively replace those symbols with the appropriate terms is something that has to be learned - and easy to forget to teach. He's talking about "don't learn monads by analogies" because he's maybe not fully aware that he is using "bind", "chain", "feed" when actually reading those expressions - all of which are analogies.
One Type to rule them all, One Type to find them, One Type to bring them all and in the Lambda >>= them
The pronunciation is a sort of bestial hissing that is difficult to describe; when you say it correctly, the terminal may be slightly moist.
> How is "m >>= f" pronounced?
If I'm not mistaken ">>=" is the bind function and could be written like:
bind m f
Meaning that "m >>= f" is pronounced as "bind m to f". What it's doing is: main = do
m <- SomeActionReturningMonad
f m
Are you saying that a language that uses symbols isn't a language? Is Japanese a language since it uses symbols (glyphs? correct me if I'm wrong).If you are talking about programming languages specifically, do you believe that "plus" should be used in place of "+"? Now I'm not going to get absurd and assume you mean using "parenthesis_start" in place of "(", but just in case... I will ask if you are.
Also, in Haskell specifically there are matching functions for those.
You can also search those symbols on Hoogle[1] or if it is a builtin keyword the Haskell keywords page[2] can be useful.
1. http://www.haskell.org/hoogle/ 2. http://www.haskell.org/haskellwiki/Keywords
We call it bind, but there's no pragmatic point in writing bind in it's infix form because of the prelevalence of the pattern.
Would you rather have that, or
(m `bind` f) `bind` g = m `bind` (\x -> (f x) `bind` g)P.S.: I guess what I'm trying to say is - every normal mathematical expression has a way to pronounce it. "plus", "for all x", "there exists an x", "sum of", "element of", ...
Also here is a great explanation with pictures that helped me understand it:
http://adit.io/posts/2013-04-17-functors,_applicatives,_and_...
The result of the computation m bound to the function f. The result of that bound to the function g.
...is equivalent to
lambda x where the result of f of x is bound to the function g.