<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hey Lorenzo--<div><br></div><div>Here's at least a partial solution to the specific case you describe:</div><div><br></div><div><font class="Apple-style-span" face="'Courier New'"><div>a=[0,10,20,30,40,50]</div><div>b=[0,10,50]</div><div>c=[2,1,-5]</div><div><br></div><div>d [] _ _ = []</div><div>d a [] c = d a [0] c</div><div>d a b [] = d a b [0]</div><div>d a b c | head a == head b = (head c) : d (tail a) (tail b) (tail c)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;| otherwise = 0 : d (tail a) b c</div><div><br></div><div>main = do</div><div>&nbsp;&nbsp;print $ d a b c</div><div><br></div></font></div><div>I don't know if it will do what you want if the lists aren't perfectly sized as they are in your example (meaning your example has all the lists expire at exactly the same iteration). &nbsp;In this example it will pad out to zero to the size of a.</div><div><br></div><div>Someone may come up with a better example, I'm still learning as I go too. &nbsp;I was just looking for an opportunity to give back to the list.</div><div><br></div><div>Cheers--</div><div>&nbsp;&nbsp;Greg</div><div><br></div><div><br></div><div><br></div><div><br><div><div>On Sep 15, 2010, at 12:28 AM, Lorenzo Isella wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>Hi Antoine,<br>Unfortunately these are really truly lists and not sets (for instance, the ordering of elements matter and some of them may be repeated).<br><br>Lorenzo<br><br>On 09/15/2010 01:55 AM, Antoine Latter wrote:<br><blockquote type="cite">Are these truly lists, or would you be better suited using Sets, Maps or<br></blockquote><blockquote type="cite">IntMaps?<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Then you can use some of the unionWith functions to decide what to<br></blockquote><blockquote type="cite">insert, or you can simply wrap the looking functions to return zero on<br></blockquote><blockquote type="cite">failure.<br></blockquote><blockquote type="cite"><br></blockquote><br><br><br><blockquote type="cite">Antoine<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">On Sep 14, 2010 6:35 PM, "Lorenzo Isella" &lt;<a href="mailto:lorenzo.isella@gmail.com">lorenzo.isella@gmail.com</a><br></blockquote><blockquote type="cite">&lt;<a href="mailto:lorenzo.isella@gmail.com">mailto:lorenzo.isella@gmail.com</a>&gt;&gt; wrote:<br></blockquote><blockquote type="cite"> &gt; Dear All,<br></blockquote><blockquote type="cite"> &gt; I still have to find my way with immutable lists and list comprehension.<br></blockquote><blockquote type="cite"> &gt; Consider the following lists<br></blockquote><blockquote type="cite"> &gt;<br></blockquote><blockquote type="cite"> &gt; A=[0,10,20,30,40,50]<br></blockquote><blockquote type="cite"> &gt; B=[0,10,50] (i.e. B is a subset of list A; list A is already ordered in<br></blockquote><blockquote type="cite"> &gt; increasing order and so is B).<br></blockquote><blockquote type="cite"> &gt; C=[2,1,-5] i.e. there is a corresponding element in C for every element<br></blockquote><blockquote type="cite"> &gt; in B.<br></blockquote><blockquote type="cite"> &gt;<br></blockquote><blockquote type="cite"> &gt; Now, I would like to define a new list D having length equal to the<br></blockquote><blockquote type="cite"> &gt; length of A. The elements of D in the position of the elements of A in<br></blockquote><blockquote type="cite"> &gt; common with B are equal to the corresponding entries in C, whereas the<br></blockquote><blockquote type="cite"> &gt; other ones are zero i.e.<br></blockquote><blockquote type="cite"> &gt; D=[2,1,0,0,0,-5]. How can I achieve that? The first thought that comes<br></blockquote><blockquote type="cite"> &gt; to my mind is to define a list of zeros which I would modify according<br></blockquote><blockquote type="cite"> &gt; to my needs, but that is not allowed...<br></blockquote><blockquote type="cite"> &gt; Many thanks<br></blockquote><blockquote type="cite"> &gt;<br></blockquote><blockquote type="cite"> &gt; Lorenzo<br></blockquote><blockquote type="cite"> &gt; _______________________________________________<br></blockquote><blockquote type="cite"> &gt; Beginners mailing list<br></blockquote><blockquote type="cite"> &gt; <a href="mailto:Beginners@haskell.org">Beginners@haskell.org</a> &lt;<a href="mailto:Beginners@haskell.org">mailto:Beginners@haskell.org</a>&gt;<br></blockquote><blockquote type="cite"> &gt; <a href="http://www.haskell.org/mailman/listinfo/beginners">http://www.haskell.org/mailman/listinfo/beginners</a><br></blockquote><blockquote type="cite"><br></blockquote><br>_______________________________________________<br>Beginners mailing list<br><a href="mailto:Beginners@haskell.org">Beginners@haskell.org</a><br>http://www.haskell.org/mailman/listinfo/beginners<br></div></blockquote></div><br></div></body></html>