Knuth's algorithm S: Difference between revisions

m
Line 29:
(defun make-selector (n)
(let ((i 0) res)
#'(lambda (&optional (x nil x-p))
(if (and x-p (< (random (incf i)) n))
(if (< (length res) n)
(push x res)
(setf (elt res (random n)) x)))
res)))
 
;;; test
Anonymous user