[Haskell-cafe] How to use "bracket" properly ?

zaxis z_axis at 163.com
Mon Oct 19 02:50:55 EDT 2009


The original code is:

winSSQ count noRed noBlue = do 
    let yesRed =  [1..33] \\ noRed
    let yesBlue = [1..16] \\ noBlue
    bracket (openFile "ssqNum.txt" WriteMode) (hClose) (\hd1 -> pickSSQ
count yesRed yesBlue hd1)

It works very well. However, as i am used to C style so i want convert it
into

winSSQ count noRed noBlue = do {
    let yesRed =  [1..33] \\ noRed;
    let yesBlue = [1..16] \\ noBlue;
    bracket (openFile "ssqNum.txt" WriteMode) (hClose) (\hd1 -> pickSSQ
count yesRed yesBlue hd1);
} 
or
winSSQ count noRed noBlue = do {
    yesRed <-  [1..33] \\ noRed;
    yesBlue <- [1..16] \\ noBlue;
    bracket (openFile "ssqNum.txt" WriteMode) (hClose) (\hd1 -> pickSSQ
count yesRed yesBlue hd1);
}
but all fail !


Thomas DuBuisson wrote:
> 
>> thanks for your quick answer. But
> I think he actually answered your question.  I.e. try it with this
> extra 'do' statement:
> 
> winSSQ count noRed noBlue = do { do
>     let yesRed =  [1..33] \\ noRed;
>     let yesBlue = [1..16] \\ noBlue;
>     bracket (openFile "ssqNum.txt" WriteMode) (hClose) (\hd1 ->
> pickSSQ count yesRed yesBlue hd1);
>  }
> 
> In the future please use complete examples that have all variables and
> import statements.  It helps us help you.
> 
> Cheers,
> Thomas
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
> 
> 

-- 
View this message in context: http://www.nabble.com/How-to-use-%22bracket%22-properly---tp25953522p25953946.html
Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.



More information about the Haskell-Cafe mailing list