<br><div><span class="gmail_quote">On 12/29/06, <b class="gmail_sendername">Neil Mitchell</b> &lt;<a href="mailto:ndmitchell@gmail.com">ndmitchell@gmail.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi<br><br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; f1 :: [Int] -&gt; [[Int]]<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f1 []&nbsp;&nbsp;&nbsp;&nbsp; = []<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; f1 (a:as) = [a] : f1 as<br><br>f1 is simply a map<br><br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; f3 la lb = let a = head la<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b = head lb
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;in if sum a &lt;= sum b then<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a : f3 (tail la) lb<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b : f3 la (tail lb)<br><br>Why not use pattern matching to split up la and lb, rather than head/tail?
<br><br>I would have thought the whole function could be written as a nice<br>foldr merge, where merge :: [Int] -&gt; [Int] -&gt; [Int]. Thats only a<br>guess at the top of my head though, not worked out properly.<br><br>
Is this homework? If so its useful to state when you post the question :)<br><br></blockquote></div><br>Hi Neil,<br><br>I am not sure how to express f1 with map?&nbsp; how do I say<br>(lambda (ls)<br>&nbsp;&nbsp;&nbsp; (map (lambda (x) (list x))
<br>&nbsp;&nbsp;&nbsp; ls))<br>in Haskell?&nbsp; map ([])&nbsp; ?<br><br>Here is my new f3:<br>f3 :: [[Int]] -&gt; [[Int]] -&gt; [[Int]]<br>f3 [] lb = lb<br>f3 la [] = la<br>f3 la@(a:as) lb@(b:bs) = if sum a &lt;= sum b then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a : f3 as lb
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b : f3 la bs<br><br>(btw, yes this is homework assigned by prof. Quan in quantum computing class :))<br>Thanks,<br>Quan<br>