
Hi, Your code is not valid syntactically, I guess the last equation for add' is "add' (a:as) (b:bs) s = add' as bs s ++ [a+b]". In that case, the function application binds stronger that ++ operator so the expression is actually equivalent to "(add' as bs s) ++ [a+b]". So you can easily see that the list is computed backwards. Vlad On 18 Oct 2011, at 14:19, Alexander Raasch wrote:
Hi,
so I wrote this function to add two vectors represented as lists:
add a b = add' a b [] where add' [] [] s = s add' (a:as) (b:bs) s ++ [a+b]
OK, I tried this in ghci:
add [1,2,3] [1,2,3] [6,4,2]
Hm, I expected the result to be [2,4,6], of course, since the currently added components always go to the end of the resulting vector. I then changed the last term in add' to
[a+b] ++ s ,
but still
add [1,2,3] [1,2,3] [6,4,2]
Can anyone explain this behavior to me. I think there should be some change in the result, no?
Alex
_______________________________________________ Beginners mailing list Beginners@haskell.org http://www.haskell.org/mailman/listinfo/beginners