I would support the idea.<br><br>That foldC-like function has been used in some other languages:<br>+ reduce in python (they have order from left to right, by the way)<br>
+ reduce phase in MapReduce programming model (<a href="http://labs.google.com/papers/mapreduce.html">http://labs.google.com/papers/mapreduce.html</a>)<br>
<br>
Quan<br><br><div class="gmail_quote">On Wed, Feb 27, 2008 at 2:32 AM, Ben Clifford <<a href="mailto:benc@hawaga.org.uk">benc@hawaga.org.uk</a>> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
Note: I added swift-devel to this piece of the thread because it is<br>
relevant there; and perhaps now not so relevant to the newslab list.<br>
<div class="Ih2E3d"><br>
On Tue, 26 Feb 2008, Quan Tran Pham wrote:<br>
<br>
</div><div class="Ih2E3d">> > What I think you are trying to do is merge a bunch of files into a single<br>
> big file? (which is not in itself a merge sort)<br>
<br>
> I have merge2 that merge two sorted files (contain sorted key + value) into<br>
> one big sorted file.<br>
<br>
</div>A different way of thinking about this, which is perhaps more of interest<br>
to the swift development group rather than newslab directly:<br>
<br>
Define a binary operator like >+ meaning somthing like<br>
ordered-concatenate, which will combine two files in the appropriate<br>
ordered fashion.<br>
<br>
  file >+ file  -->  file<br>
<br>
This operator is commutative.<br>
<br>
Then have foldC able to fold knowing that the supplied operator is<br>
commutative (so it can split up in a binary fashion, or however other way<br>
it cares to).<br>
<br>
Now say:<br>
<br>
  file[] inputs<br>
  file output<br>
  output = foldC (>+) inputs<br>
<br>
Perhaps foldC should be provided by Swift, with >+ provided as a<br>
procedure.<br>
<font color="#888888"><br>
--<br>
</font></blockquote></div><br><br clear="all"><br>-- <br>Quan Tran Pham<br>PhD Student<br>Department of Computer Science <br>University of Chicago<br>1100 E 58th Street, Chicago, IL 60637<br>Office: Ryerson 178<br>Phone: (773)702-4227<br>
Fax: (773)702-8487<br><a href="mailto:quanpt@cs.uchicago.edu">quanpt@cs.uchicago.edu</a><br>---