
2009/05/19 Michael P Mossey
For example, a monad is sometimes called a "computation" or an "effect", but I've not seen it called an "algorithm."
There is a difference between a monad and monadic value -- just as there is a difference between "List" as a structure and a particular list as an instantiation of that structure.
Can someone elaborate on these terms and why they are used? What is the difference between a computation and an algorithm?
This is a little like saying, what is the difference between an algorithm and a program? The term "algorithm" denotes not only a sequence of instructions to perform but also a solution (in a well-defined sense) to a particular problem. A computation is probably anything whatever that warms the computer.
The word "effect" has a fairly obvious meaning (like an IO side-effect) but I suspect there's more to it.
I believe the usual aphorism is "Monads sequence effects.". -- Jason Dusek