[Haskell-cafe] What are side effects in Haskell?

Reiner Pope reiner.pope at gmail.com
Fri Jan 2 18:47:48 EST 2009


2009/1/3 Conal Elliott <conal at conal.net>:
> Are there other thoughts & insights about the source of the idea that
> "everything is a function"?
>

Lazy evaluation can make values seem like functions, given that
laziness can be modeled in a strict imperative language by 0-argument
functions.

Also, in an uncurried language, decreasing the number of arguments to
a function, still keeps it a function, eg
   foo(int a, int b);  // 2 arguments
   foo(int a);   // 1 argument
   foo();   // 0 arguments, but still a function
In a strict language, there is a distinction between 0-argument
functions and values; there isn't in Haskell, but it is still nice to
maintain the idea of "0-argument functions" in Haskell -- which are
just values.

Cheers,
Reiner


More information about the Haskell-Cafe mailing list