19/02/24 16:12:06.37 ke/CY5a3.net
>>359 Pharo/Squeak Smalltalk
| sleepsort |
sleepsort := [:arr |
| queue |
queue := SharedQueue new.
arr do: [:x | [(x * 2) milliSeconds asDelay wait. queue nextPut: x] fork].
(1 to: arr size) inject: #() into: [:acc :idx | acc, {queue next}]
].
sleepsort value: #(2 1 5 10 7 8 3 6 4 9)
"=> #(1 2 3 4 5 6 7 8 9 10) "