Best shuffle: Difference between revisions

→‎{{header|Common Lisp}}: slightly simplified
(→‎{{header|Common Lisp}}: new version using simple loops)
(→‎{{header|Common Lisp}}: slightly simplified)
Line 1,018:
(let ((length (length string))
(result (copy-seq string)))
(dotimes (i length result)
(dotimes (j length)
(when (and (/= i j)
(char/= (aref string i) (aref result j))
(char/= (aref string j) (aref result i)))
(rotatef (aref result i) (aref result j)))))))
result))
(defun best-shuffle (list)
Anonymous user