You can also use lazy pattern matching.<br><br><a href="http://en.wikibooks.org/wiki/Haskell/Laziness#Lazy_pattern_matching">http://en.wikibooks.org/wiki/Haskell/Laziness#Lazy_pattern_matching</a><br><br><div class="gmail_quote">
On 16 April 2012 15:21, Lorenzo Bolla <span dir="ltr"><<a href="mailto:lbolla@gmail.com">lbolla@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">> splitAt' :: Int -> [a] -> ([a], [a])<br>
> splitAt' n = foldr (\x <font color="#cc0000">~</font>(z1, z2) -> if fst x <= n then (snd x : z1, z2)<br>
> else ([], snd x : z2))<br>
> ([], [])<br>
> . zip [1..]</div></blockquote></div><br>
<div>Ozgur</div><div><br></div>