Tomasz Zielonka wrote:
On Thu, Nov 25, 2004 at 07:52:43PM +0100, Lennart Augustsson wrote:

As I'm sure you have gathered from all the answers you can't have the
latter and keep Haskell pure.  But there is an interesting alternative
(at least theoretically).  You could have a function like

mkCatchJust :: IO ((Exception -> Maybe b) -> (c -> a) -> c -> (b -> a) -> a)


How is that different from this?

  mkReadFile :: IO (FilePath -> String)

This is wrong.

Why is this wrong?


Even if I get a function as a result of an IO computation, I
expect that function to be pure.

Yes, so do I. The function returned will have to be pure. Pure in the sense that given the same argument it always has to return the same result. In the case of mkReadFile this is not too hard to implement.

I admit that it is rather awkward, but it can be pure.

        -- Lennart
_______________________________________________
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to