XPost: alt.usage.english
Newsgroups: alt.usage.english, comp.lang.haskell
Followup-To: comp.lang.haskell
Jack Campin <
bogus@purr.demon.co.uk> writes:
In pure functional programming, one does not have
such effects as object creation.
You do. That's what monads are for.
Monads are merely used to express the /combination/ of
action values using the »bind« operation. But the
action values used in Haskell, like the value of
»putStr "hello"« clearly have an /operational/ meaning:
»putStr :: String -> IO ()
base Prelude, base System.IO
Write a string to the standard output device«
www.haskell.org
and thus they are /not/ what I call »purely function«
anymore.
One can write a Haskell function that deals with an
action value representing object creation. Such a function
would still be what I call »purely function«, but it never
will /create an object/ on its own. The moment one wants
to actually /perform/ the action value, one is leaving
the realm of pure functional programming.
Newsgroups: alt.usage.english, comp.lang.haskell
Followup-To: comp.lang.haskell
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)