2011年7月1日金曜日

sleep sort in Elisp

いまさらながら "sleep sort" というネタを知った。非同期処理を使ったすごい発想。

いちおうElispで書いてみた。run-at-timeなんて関数があるんですねー、と。

(defun sleep-sort (lat)
  (if (null lat) nil
    (lexical-let ((n (car lat)))
      (run-at-time n nil (lambda () (print n))))
    (sleep-sort (cdr lat))))

(sleep-sort '(3 2 1 0))

0 件のコメント:

コメントを投稿