[Haskell-beginners] Prelude.(!!): index too large
Roger Mason
rmason at mun.ca
Thu Apr 4 19:49:49 CEST 2013
Hello,
The following fragment compiles but causes a runtime error:
Prelude.(!!): index too large
If I comment out the line 'hPutStr outh ( show ncat)' the program runs
fine (but there is no output, of course).
Thanks for any help.
Roger
writeOutput infile outfile list fox mw nox ncat units = do
inh <- openFile infile ReadMode -- the file of analyses, one
per line
outh <- openFile outfile WriteMode
mainloop inh outh list fox mw nox ncat units
hClose outh
hClose inh
-- the calculations are here
mainloop inh outh list fox mw nox ncat units = do
ineof <- hIsEOF inh
if ineof
then do
print list -- For testing/debugging only
return ()
else do
inpStr <- hGetLine inh
let list' = inpStr:list
let dat = floatData list' -- the analytical
input data
let ta = zipWith (/) dat
units -- convert all to wt%
let moles = zipWith (/) ta mw
let apo = zipWith (*) nox moles
let factor = fox/(sum apo)
let nanions= (map (* factor) apo)
let catox = zipWith (/) ncat nox
let ncat = zipWith (*) catox nanions
hPutStr outh ( show ncat)
mainloop inh outh list' fox mw nox ncat units
This electronic communication is governed by the terms and conditions at
http://www.mun.ca/cc/policies/electronic_communications_disclaimer_2012.php
More information about the Beginners
mailing list