Fellow ChucKists,<div><br></div><div>I just noticed this sorting algorithm; <a href="http://dis.4chan.org/read/prog/1295544154">http://dis.4chan.org/read/prog/1295544154</a> (should be work-safe, despite that URL)</div><div>
<br></div><div>for those afraid of 4chan links and for reference, here is it;</div><div><br></div><div><span class="Apple-style-span" style="font-family: serif; font-size: medium; "><code class="prettyprint"><span class="com" style="color: rgb(136, 0, 0); ">#!/bin/bash</span><span class="pln"><br>
</span><span class="kwd" style="color: rgb(0, 0, 136); ">function</span><span class="pln"> f</span><span class="pun" style="color: rgb(102, 102, 0); ">()</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0); ">{</span><span class="pln"><br>
    sleep </span><span class="str" style="color: rgb(0, 136, 0); ">"$1"</span><span class="pln"><br>    echo </span><span class="str" style="color: rgb(0, 136, 0); ">"$1"</span><span class="pln"><br></span><span class="pun" style="color: rgb(102, 102, 0); ">}</span><span class="pln"><br>
</span><span class="kwd" style="color: rgb(0, 0, 136); ">while</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0); ">[</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0); ">-</span><span class="pln">n </span><span class="str" style="color: rgb(0, 136, 0); ">"$1"</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0); ">]</span><span class="pln"><br>
</span><span class="kwd" style="color: rgb(0, 0, 136); ">do</span><span class="pln"><br>    f </span><span class="str" style="color: rgb(0, 136, 0); ">"$1"</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0); ">&</span><span class="pln"><br>
    shift<br></span><span class="kwd" style="color: rgb(0, 0, 136); ">done</span><span class="pln"><br>wait</span></code><br><br>example usage:<br><code class="prettyprint"><span class="pun" style="color: rgb(102, 102, 0); ">.</span><span class="str" style="color: rgb(0, 136, 0); ">/sleepsort.bash 5 3 6 3 6 3 1 4 7</span></code></span></div>
<div><br></div><div><br></div><div>Since this is time-based and also spectacularly impractical it should be of acute interest to present company.</div><div>I therefore ported this to ChucK which was so far lacking a sorting algorithm that is consistent with our time-centric approach to programming.</div>
<div>----------------------8<-------------------------------------</div><div><div>int input[8];</div><div>for (int n; n< input.size(); n++) Std.rand2(0, 20) => input[n];</div><div><br></div><div>int output[false];</div>
<div><br></div><div>fun void arrayPrinter( int arg[] )</div><div><span class="Apple-tab-span" style="white-space:pre">    </span>{</div><div><span class="Apple-tab-span" style="white-space:pre">    </span>for (int n; n < arg.size(); n++) chout <= arg[n] <= " ";</div>
<div><span class="Apple-tab-span" style="white-space:pre">      </span>chout <= IO.newline();</div><div><span class="Apple-tab-span" style="white-space:pre">    </span>}</div><div><br></div><div>fun void waiter(int length)</div>
<div><span class="Apple-tab-span" style="white-space:pre">      </span>{</div><div><span class="Apple-tab-span" style="white-space:pre">    </span>length::second => now;</div><div><span class="Apple-tab-span" style="white-space:pre">    </span>output << length;</div>
<div><span class="Apple-tab-span" style="white-space:pre">      </span>}</div><div><br></div><div>arrayPrinter(input);</div><div><br></div><div>for (int n; n< input.size(); n++) spork~waiter(input[n]);</div><div><br></div><div>
while (output.size() < input.size()) second => now;</div><div><br></div><div>arrayPrinter(output);</div></div><div>---------------------------------------------8<----------------------------------</div><div><br></div>
<div>This will display a list of random numbers, spends some time on sorting them, then displays the numbers again, but sorted.</div><div><br></div><div>Hope that's good for a smile for some.</div><div><br></div><div>
Yours,</div><div>Kas.</div>