On Fri, 2008-12-05 at 17:06 +0100, Thomas Davie wrote:
> On 5 Dec 2008, at 17:00, Duncan Coutts wrote:
> 
> > On Fri, 2008-12-05 at 16:50 +0100, Thomas Davie wrote:
> >
> >> Sure, and he could then use a fold instead of a map.  Reading files  
> >> is
> >> problematic, but as long as you're only doing it once (the most  
> >> common
> >> situation) is entirely fine wrapped up in an unsafePerformIO.
> >
> > Nooooo!
> >
> > Please don't go telling people it's entirely fine to use  
> > unsafePerformIO
> > like that (or at all really).
> 
> Exactly what isn't fine about it?

It's the antithesis of pure functional programming. It's so unsafe that
we don't even have a semantics for it.

One needs pretty special justification for using unsafePerformIO and
such cases should be hidden in libraries presenting pure interfaces, not
used willy-nilly in general application code.

Note that I'm not claiming that it's necessarily going to do bad things
in the specific case you're imagining using it in. However just because
it happens not to do bad things in this case does not mean that it's ok
to use it here or in general.

Duncan

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to