<div dir="ltr"><div class="gmail_default" style="font-family:georgia,serif;font-size:small">The "helper list" technique is ingenious, but seems very specific to Int as the type within the list.</div><div class="gmail_default" style="font-family:georgia,serif;font-size:small"><br></div><div class="gmail_default" style="font-family:georgia,serif;font-size:small">I have had other tasks that seem to fit a more generalized problem statement, of which the original question appears to me as special case:</div><div class="gmail_default" style="font-family:georgia,serif;font-size:small"><br></div><div class="gmail_default" style="font-size:small"><span style="font-family:georgia,serif">Given a criterion of type </span><font face="monospace, monospace">a -> a -> Bool</font><font face="georgia, serif"> and a list </font><font face="monospace, monospace">[a]</font><font face="georgia, serif">, produce a list of lists </font><font face="monospace, monospace">[[a]]</font><font face="georgia, serif"> in which sub-lists are made up of consecutive elements from the original list that satisfy the criterion.</font></div><div class="gmail_default" style="font-family:georgia,serif;font-size:small"><br></div><div class="gmail_default" style="font-size:small"><span style="font-family:georgia,serif">It appears to me that </span><font face="monospace, monospace">List.groupBy</font><font face="georgia, serif"> may meet that need, but I'm not able to verify that at the moment (and would be glad of feedback).</font></div><div class="gmail_default" style="font-size:small"><font face="georgia, serif"><br></font></div><div class="gmail_default" style="font-size:small"><font face="georgia, serif">-jn-</font></div><div class="gmail_default" style="font-size:small"><font face="georgia, serif"><br></font></div><div class="gmail_default" style="font-family:georgia,serif;font-size:small"><br></div><div class="gmail_default" style="font-family:georgia,serif;font-size:small"><br></div><div class="gmail_default" style="font-family:georgia,serif;font-size:small"><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jan 13, 2017 at 10:55 AM, Francesco Ariis <span dir="ltr"><<a href="mailto:fa-ml@ariis.it" target="_blank">fa-ml@ariis.it</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>On Fri, Jan 13, 2017 at 09:35:54PM +0530, Saqib Shamsi wrote:<br>
> The problem that I wish to solve is to divide a (sored) list of integers<br>
> into sublists such that each sublist contains numbers in consecutive<br>
> sequence.<br>
><br>
> For example,<br>
</span>> *Input:* [1,2,3,7,8,10,11,12]<br>
> *Output:* [[1,2,3],[7,8],[10,11,12]]<br>
><br>
> [...]<br>
<span>><br>
> However, I was wondering if there was a better way of doing this. Any help<br>
> would be highly appreciated.<br>
<br>
</span>Hello Saquib,<br>
    you could try using a 'trick' like this:<br>
<br>
λ> zipWith (-) [1,2,3,7,8,10,11,12] (enumFrom 1)<br>
[0,0,0,3,3,4,4,4]<br>
<br>
Now you have an 'helper' list which can be glued to the first one<br>
with zip<br>
<br>
λ> zip [1,2,3,7,8,10,11,12] it<br>
[(1,0),(2,0),(3,0),(7,3),(8,3)<wbr>,(10,4),(11,4),(12,4)]<br>
<br>
and now grouped by using `groupBy` in Data.List.<br>
<br>
Does that help?<br>
______________________________<wbr>_________________<br>
Beginners mailing list<br>
<a href="mailto:Beginners@haskell.org" target="_blank">Beginners@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bi<wbr>n/mailman/listinfo/beginners</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="m_1626830938609822944gmail_signature" data-smartmail="gmail_signature">Beauty of style and harmony and grace and good rhythm depend on simplicity. - Plato</div>
</div></div>