[Haskell-beginners] computation vs function
Philippa Cowderoy
flippa at flippac.org
Wed Apr 22 18:01:50 EDT 2009
On Wed, 2009-04-22 at 22:38 +0200, Daniel Carrera wrote:
> Hello,
>
> I have finished the tutorial at http://ertes.de/articles/monads.html and
> my understanding of monads has increased greatly. I still need to cement
> some concepts in my mind. What exactly is the difference between a
> computation and a function? Monads revolve around computations, so I'd
> like to understand computations better.
>
Computations are like "procedures" in other languages - you run them[1],
they yield a value. Conceptually, functions are (potentially infinite)
maps from their input to their output. We sometimes call functions with
types like "Int -> IO ()" monadic functions as well, which may also mean
the combination of the function and then the computation that results -
by analogy to functions in languages like C.
[1] Sometimes the runtime system runs them for you, like main. Sometimes
the computation is already its (lazily evaluated) output, like with
lists or Maybe.
--
Philippa Cowderoy <flippa at flippac.org>
More information about the Beginners
mailing list