[Haskell-beginners] "computation", "action"
Andrew Wagner
wagner.andrew at gmail.com
Tue May 19 18:21:50 EDT 2009
On Tue, May 19, 2009 at 6:14 PM, Michael P Mossey <mpm at alumni.caltech.edu>wrote:
> I've seen the following language used:
> - "computations"
> - "actions"
> - "effects"
> - "context" (For example, a functor is a context, and fmap applies a
> function to an object in that context without changing the context.)
>
These are all often used to describe expressions of type "m a" for some
monad m. Different ones are more or less accurate depending on the
particular monad you're talking about, and depending on your personal
preferred way of looking at it. The thing with monads is that what they
abstract is hard to put succinctly outside of code.
>
> One words that seem to come up in Haskell are "algorithm" and "procedure."
>
I've not seen these used in Haskell. They sound distinctly imperative to me,
for some reason. But, until you define the words connotatively, all I can
say is how they sound to me.
>
> For example, a monad is sometimes called a "computation" or an "effect",
> but I've not seen it called an "algorithm."
>
> Can someone elaborate on these terms and why they are used? What is the
> difference between a computation and an algorithm? The word "effect" has a
> fairly obvious meaning (like an IO side-effect) but I suspect there's more
> to it.
>
> Why is the word "context" important, and when it is more appropriate than
> "container"?
>
I would put container in with the list at the beginning: it's another way
that can be more or less appropriate for monadic values, depending on the
monad and your perspective.
>
> thanks,
> Mike
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://www.haskell.org/mailman/listinfo/beginners
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/beginners/attachments/20090519/e0f9a553/attachment-0001.html
More information about the Beginners
mailing list