<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
On 05/01/2012 11:09, Brandon Allbery wrote:
<blockquote
cite="mid:CAKFCL4UJABi9sA_Ygfz7TTJuG_aUDiQgDc9kOvTDQMibtgV_Og@mail.gmail.com"
type="cite">
<div dir="ltr">On Thu, Jan 5, 2012 at 05:57, Steve Horne <span
dir="ltr"><<a moz-do-not-send="true"
href="mailto:sh006d3592@blueyonder.co.uk">sh006d3592@blueyonder.co.uk</a>></span>
wrote:<br>
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
-- groupCut - Similar to groupBy, but where groupBy
assumes an equivalence relation,<br>
-- groupCut takes a function that indicates where to cut.
The two parameters to this<br>
-- function are always adjacent items from the list, and
if the function returns True,<br>
-- a cut is done between the two items.<br>
</blockquote>
<div><br>
</div>
<div>span/break?</div>
<div><br>
</div>
</div>
<br>
</div>
</blockquote>
Using those, the test function won't always be passed two *adjacent*
elements from the list. After all, they're based on takeWhile and
dropWhile, which take unary functions, meaning an element has
already been curried in (the starting element of the group).<br>
<br>
That's probably how the current groupBy is implemented - the
approach that assumes an equivalence relation, giving unexpected
results when the By function isn't an equivalence relation.<br>
<br>
</body>
</html>