• "purely functional" (was: Dash in expression functioning as adjective)

    From Stefan Ram@21:1/5 to Jack Campin on Wed May 11 17:07:45 2016
    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)