[Haskell-beginners] trouble using the foldl ....

Sunil S Nandihalli sunil.nandihalli at gmail.com
Thu Aug 11 12:53:16 CEST 2011


Hello everybody,
When I compile a file containing ...

plotAsString::(Integral a)=>[(a,a)]->a->String
plotAsString locs ans = let xs = map fst locs
                            ys = map snd locs
                            locsmap = M.fromList (zip locs [0..])
                            bufsize=10
                            min' = ((\x -> x-bufsize) . minimum)
                            max' = ((\x -> x+bufsize) . maximum)
                            (bmin@(x0,y0),bmax@(x1,y1)) = ((min' xs,min'
ys),(max' xs,max' ys))
                            plotString = foldl (\curStr newRowId -> (foldl
(\ccStr newColId -> (ccStr++(case (M.member (newRowId,newColId) locsmap) of

                            (Just v) -> ("." ++ (show v) ++ ".")

                            (Nothing) -> "   ")))

curStr [y0..y1])) "" [x0..x1]
                        in plotString

I get the following error..

main.hs:34:107:
    Couldn't match expected type `Bool' with actual type `Maybe t0'
    In the pattern: Just v
    In a case alternative: (Just v) -> ("." ++ (show v) ++ ".")
    In the second argument of `(++)', namely
      `(case (M.member (newRowId, newColId) locsmap) of {
          (Just v) -> ("." ++ (show v) ++ ".")
          (Nothing) -> "   " })'

can somebody help?

Thanks,
Sunil.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/beginners/attachments/20110811/c902d219/attachment.htm>


More information about the Beginners mailing list