From dd4c8b60ce19e71ca68623c3e557e2d529f76b82 Mon Sep 17 00:00:00 2001 From: Thanos Apollo Date: Sat, 18 May 2024 02:12:21 +0300 Subject: Add gnosis-shuffle --- gnosis.el | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'gnosis.el') diff --git a/gnosis.el b/gnosis.el index 27c57e8..d633e06 100644 --- a/gnosis.el +++ b/gnosis.el @@ -274,6 +274,14 @@ Example: (emacsql-with-transaction gnosis-db (gnosis--delete 'decks `(= id ,id))) (message "Deleted deck `%s'" deck-name)))) +(defun gnosis-shuffle (seq) + "Shuffle SEQ." + (cl-loop with len = (length seq) + for i from len downto 2 + do (let ((j (random i))) ; Get random index < i. + (cl-rotatef (nth (1- i) seq) (nth j seq))) ; Swap elements. + finally return seq)) + (defun gnosis-replace-item-at-index (index new-item list) "Replace item at INDEX in LIST with NEW-ITEM." (cl-loop for i from 0 for item in list -- cgit v1.2.3