<div style="color:#000; font-size: 14px;font-family: arial;">    <div>Hi Haskellers,<br><br>I encounter an strange behavior of haskell program recently.  The following is my program<br><br>```haskell<br>main = do<br>    _ <- getLine<br>    arr1 <- getLine<br>    _ <- getLine<br>   arr2 <- getLine<br>   let a = map (read :: String -> Int) (words arr1)<br>        b = map (read :: String -> Int) (words arr2)<br><br>  putStrLn $ show $ (foldl (*) 1 a)<br>  putStrLn $ show $ a == [1,2,4,8,32,64,128,256,512,1024,2048,4906,8192]<br>  putStrLn $ show $ (foldl (*) 1 [1,2,4,8,32,64,128,256,512,1024,2048,4906,8192])<br>```<br><br>With the input test file as following:<br><br>```test.in<br>13<br>1 2 4 8 32 64 128 256 512 1024 2048 4906 8192<br>9<br>1 3 9 27 81 243 729 2187 6561<br>```<br><br>The output is as:<br>```output<br>0<br>True<br>185343439719667835347140608<br>```<br><br>In fact, from the program, we know that a is equal to list  [1,2,4,8,32,64,128,256,512,1024,2048,4906,8192] ,<br>but the product of a and the literal list is different.<br><br>Can anyone tell me why?<br><br>Thanks       <br><br></div><div><br></div><div><br></div><div><br></div></div><div id="spnEditorSign" name="100"><div><div>--m00nlight<br></div></div></div><div><br></div><!-- jy5ContentSuffix --><br><br><span title="neteasefooter"><span id="netease_mail_footer"><span title="neteasefooter"><span id="netease_mail_footer"><a href="#" target="_blank"></a></span></span>
</span></span>