[Haskell-beginners] Updating lists inside another list

Lee Duhem lee.duhem at gmail.com
Mon Jun 22 21:41:30 EDT 2009


On Tue, Jun 23, 2009 at 8:05 AM, Aaron MacDonald<aaronjm at eastlink.ca> wrote:
> I have a list of pairs. Each pair has a value and a list. So, the structure
> looks like this:
>
> [ (a, [b, c]), (b, [a, c]) ]
>
> What I want to do is be able to add an element to the inner list of the pair
> with the head value of my choosing.  So, for the above list:
>
>> addToInnerList [ (a, [b, c]), (b, [a, c]) ] a d
> [ (a, [b, c, d]), (b, [a, c]) ]
> _______________________________________________

A simple recursive definition will do this:

addToInnerList [] _ _ = []
addToInnerList (x@(h,l):xs) a b
    | h == a = (h,l++[b]):xs
    | otherwise = x : addToInnerList xs a b

BTW, is it your homework?

lee


More information about the Beginners mailing list