Sorting algorithms/Sleep sort: Difference between revisions

Content added Content deleted
No edit summary
No edit summary
Line 359: Line 359:
main :: IO ()
main :: IO ()
main = getArgs >>= sleepSort . map read</lang>
main = getArgs >>= sleepSort . map read</lang>

=={{header|Icon}} and {{header|Unicon}}==

The following solution only works in Unicon.

<lang unicon>global t

procedure main(A)
t := set()
every insert(t,mkThread(!A))
every spawn(!t) # start threads as closely grouped as possible
while (*t > 0) do write(<<@)
end

procedure mkThread(n) # 10ms delay scale factor
return create (delay(n*10),delete(t,&current),n@>&main)
end</lang>

Sample run:

<pre>
->ss 3 1 4 1 5 9 2 6
1
1
2
3
4
5
6
9
->
</pre>


=={{header|Java}}==
=={{header|Java}}==