[Haskell-cafe] the Haskell "with" "pattern"?

Galchin, Vasili vigalchin at gmail.com
Wed Aug 6 04:29:00 EDT 2008


Hi Jeremy and the haskell community,

    I think now my question is why isn't there a higher-order "with"
function in the Haskell Prelude?

Regards, Vasili

On Wed, Aug 6, 2008 at 2:25 AM, Jeremy Shaw <jeremy at n-heptane.com> wrote:

> At Wed, 6 Aug 2008 00:43:55 -0500,
> Galchin, Vasili wrote:
> >
> > [1  <multipart/alternative (7bit)>]
> > [1.1  <text/plain; ISO-8859-1 (7bit)>]
> > Hello,
> >
> >     1) Is there a common assumed semantics across all of the Haskell
> "with"
> > things? withString? withData?
>
> A vague semantic is that some resource is acquired, used, and then
> released.
>
> >     2) If the answer to 1) is yes, then does this imply some kind of
> > polymorphism? Couldn't "with" be "reduced" to a higher order function
> then
> > ??
>
> I think Control.Exception.bracket is used to implement many, but not
> all, of the with* functions.
>
> > newThing :: IO a
> > newThing = ...
>
> > destroyThing :: a -> IO b
> > destroyThing ...
>
> > withThing :: (Thing -> IO a) -> IO a
> > withThing useThing = bracket newThing destroyThing useThing
>
> I have not fully answered either of your questions, but hopefully this
> is a start.
>
> j.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20080806/171da5fb/attachment.htm


More information about the Haskell-Cafe mailing list