Fellow ChucKists,
for those afraid of 4chan links and for reference, here is it;
#!/bin/bash
function f() {
sleep "$1"
echo "$1"
}
while [ -n "$1" ]
do
f "$1" &
shift
done
wait
example usage:
./sleepsort.bash 5 3 6 3 6 3 1 4 7
Since this is time-based and also spectacularly impractical it should be of acute interest to present company.
I therefore ported this to ChucK which was so far lacking a sorting algorithm that is consistent with our time-centric approach to programming.
----------------------8<-------------------------------------
int input[8];
for (int n; n< input.size(); n++) Std.rand2(0, 20) => input[n];
int output[false];
fun void arrayPrinter( int arg[] )
{
for (int n; n < arg.size(); n++) chout <= arg[n] <= " ";
chout <= IO.newline();
}
fun void waiter(int length)
{
length::second => now;
output << length;
}
arrayPrinter(input);
for (int n; n< input.size(); n++) spork~waiter(input[n]);
while (output.size() < input.size()) second => now;
arrayPrinter(output);
---------------------------------------------8<----------------------------------
This will display a list of random numbers, spends some time on sorting them, then displays the numbers again, but sorted.
Hope that's good for a smile for some.
Yours,
Kas.