[Haskell-beginners] Help with meaningful error message...

Sean Charles sean at objitsu.com
Tue Jun 7 23:54:18 CEST 2011


On 07/06/11 22:50, aditya siram wrote:
> I think the parse error is here:
>
> forwardRoutes m [] = m
> forwardRoutes m (row:rows) =
>   case M.lookup m (row !! 0) of
>     Just route ->  M.update m (row !! 1):route
>     Nothing ->  M.insert from []
>   forwardRoutes m rows<----------------- you probably want to remove this line

If I do that, how does my recursive function call itself again?

I think it is badly broken in the syntax!
In the last five minutes I have progressed to ...


forwardRoutes :: M.Map String [String] -> [Record] -> M.Map
forwardRoutes m [] = m
forwardRoutes m (row:rows) =
   case M.lookup m (row !! 0) of
     Just route -> M.update m (row !! 1):route
     Nothing    -> M.insert (row!!0) []
   forwardRoutes m rows

but I think it ought to be...


forwardRoutes :: M.Map String [String] -> [Record] -> M.Map
forwardRoutes m [] = m
forwardRoutes m (row:rows) =
   case M.lookup m (row !! 0) of
     Just route -> forwardRoutes (M.update m (row !! 1):route) rows
     Nothing    -> forwardRoutes (M.insert (row!!0) []) rows

Anybody! LOL :)


>
> -deech
>
>
> On Tue, Jun 7, 2011 at 4:44 PM, Sean Charles<sean at objitsu.com>  wrote:
>> OK, I am losing enough hair and accruing follicular damage more than I can
>> take tonight, what is wrong, what have I done that is stupid and wrong
>> etc...
>>
>> called:
>>   let routes = forwardRoutes M.empty csvdata  -- [Record] from Text.CSV
>>
>> implemented:
>>
>> forwardRoutes m [] = m
>> forwardRoutes m (row:rows) =
>>   case M.lookup m (row !! 0) of
>>     Just route ->  M.update m (row !! 1):route
>>     Nothing ->  M.insert from []
>>   forwardRoutes m rows
>>
>>
>> error: scread.hs:101:2: parse error on input `forwardRoutes'
>>
>> Um yeah, thanks, that's really helping me figure it out.
>>
>> All I wanted to do was build a map of keys and values where each value is a
>> list that gradually accumulates(!) every row that ends at (!!1)  from the
>> same location (!!0) of my spreadsheet. I started off zipping with 'repeat
>> []' and stuff but I just want to know what I have done to annoy the compiler
>> enough to want to taunt me with that message.
>>
>> And, on the verge of posting I think the above code won't work anyway
>> because I am not passing the new Map from 'insert' through.......
>>
>> ARGH!
>> :(
>>
>>
>>
>> _______________________________________________
>> Beginners mailing list
>> Beginners at haskell.org
>> http://www.haskell.org/mailman/listinfo/beginners
>>




More information about the Beginners mailing list