Sorting algorithms/Sleep sort: Difference between revisions
Content deleted Content added
Updated D entry |
Add Racket entry |
||
Line 550: | Line 550: | ||
;Sample output: |
;Sample output: |
||
<pre>sleep sort worked for: [3, 2, 4, 7, 3, 6, 9, 1]</pre> |
<pre>sleep sort worked for: [3, 2, 4, 7, 3, 6, 9, 1]</pre> |
||
=={{header|Racket}}== |
|||
<lang racket> |
|||
#lang racket |
|||
;; accepts a list to sort |
|||
(define (sleep-sort lst) |
|||
(define done (make-channel)) |
|||
(for ([elem lst]) |
|||
(thread |
|||
(λ () |
|||
(sleep elem) |
|||
(channel-put done elem)))) |
|||
(for/list ([_ (length lst)]) |
|||
(channel-get done))) |
|||
;; outputs '(2 5 5 7 8 9 10) |
|||
(sleep-sort '(5 8 2 7 9 10 5)) |
|||
</lang> |
|||
=={{header|REXX}}== |
=={{header|REXX}}== |