Hi all,
 I stumbled across this (http://www.codinghorror.com/blog/archives/001015.html)
 a little while ago and thought that alexandria's shuffle could do
with an update.

 Please find the attached patch which updates the shuffle function.

Cheers,
 Sean.
New patches:

[use Knush-Fisher-Yates shuffle algorithm
[EMAIL PROTECTED] {
hunk ./sequences.lisp 58
-    (loop for i from start below end
-       do (rotatef (elt sequence i) (elt sequence (random end)))))
+    (loop for i from (1- end) downto start
+          do (rotatef (elt sequence i) (elt sequence (random (1+ i))))))
}

Context:

[Switch the argument order of STARTS/ENDS-WITH-SUBSEQ to that it matches STARTS/ENDS-WITH.
[EMAIL PROTECTED] 
[Fix map-permutations typo.
[EMAIL PROTECTED] 
[fix: darcs merge conflict was recorded into package.lisp
[EMAIL PROTECTED] 
[Merge conflicts around the conditions
[EMAIL PROTECTED] 
[Simplify IGNORE-SOME-CONDITIONS's docstring.
Luis Oliveira <[EMAIL PROTECTED]>**20070823040556] 
[New macro: IGNORE-SOME-CONDITIONS
Luis Oliveira <[EMAIL PROTECTED]>**20070726171110] 
[New macro: NCONCF
Luis Oliveira <[EMAIL PROTECTED]>**20070720003523
 
 - Added respective documentation to the manual.
 - New test: NCONCF.1
] 
[New function: FEATUREP
Luis Oliveira <[EMAIL PROTECTED]>**20070720003420
 
 Added respective documentation in manual as well.
] 
[New macro: COERCEF
Luis Oliveira <[EMAIL PROTECTED]>**20070720003607
 
 Added respective documentation to the manual.
] 
[Small fix to REQUIRED-ARGUMENT's control string.
Luis Oliveira <[EMAIL PROTECTED]>**20070823040500] 
[Fix some type declarations for CLISP-compatibility.
Stelian Ionescu <[EMAIL PROTECTED]>**20070806160206
 Type declareations like ((or fixnum null) bar) or (unsigned-byte foo)
 don't work on CLISP. Must use (type unsigned-byte foo) instead.
] 
[Remove trailing whitespace in source code
Luis Oliveira <[EMAIL PROTECTED]>**20070711140350] 
[Renamed errors.lisp to conditions.lisp
[EMAIL PROTECTED] 
[Added simple-style-warning function and condition.
[EMAIL PROTECTED] 
[sane named-lambda
Nikodemus Siivola <[EMAIL PROTECTED]>**20070809171107] 
[Use a shared expander for the SWITCH macros
[EMAIL PROTECTED]
  - support #'eq and 'eq style :test arg
  - support T and OTHERWISE clause instead of the :default keyword arg
] 
[Make define-constant understand :test 'string= and #'string=. Feel free to 'darcs undo' it if it's considered too dwim'y.
[EMAIL PROTECTED] 
[DECLAIM, not DECLARE.
Nikodemus Siivola <[EMAIL PROTECTED]>**20070703103139] 
[Combinations, permutations, and derangements
Nikodemus Siivola <[EMAIL PROTECTED]>**20070701122604] 
[Factorial, binomial-coefficient, subfactorial, and count-permutations.
Nikodemus Siivola <[EMAIL PROTECTED]>**20070701122419] 
[Compiler-macro for OF-TYPE
Nikodemus Siivola <[EMAIL PROTECTED]>**20070701122227] 
[ENSURE-CAR
Nikodemus Siivola <[EMAIL PROTECTED]>**20070701122110] 
[ENSURE-FUNCTION
Nikodemus Siivola <[EMAIL PROTECTED]>**20070701121903] 
[Documentation and comment tweaks
Nikodemus Siivola <[EMAIL PROTECTED]>**20070701121316] 
[deftype for ARRAY-LENGTH
Nikodemus Siivola <[EMAIL PROTECTED]>**20070701120827] 
[Added starts-with-subseq and ends-with-subseq
[EMAIL PROTECTED] 
[Added delete-from-plist, delete-from-plistf, remove-from-plistf.
[EMAIL PROTECTED] 
[MAP-IOTA, misc. fixes, and tests up to 100% coverage
Nikodemus Siivola <[EMAIL PROTECTED]>**20070601143059] 
[Nothing Can Stop The Progressive Revolution
Nikodemus Siivola <[EMAIL PROTECTED]>**20070601123336
 
 Added:
  * XOR
  * WHICHEVER
  * SWITCH, ESWITCH, CSWItCH
  * UNIONF, NUNIONF
  * ALIST-PLIST, PLIST-ALIST
  * ENSURE-CONS
  * NAMED-LAMDBA
  * DEFINE-CONSTANT
  * STRING-DESIGNATOR
 
 Note:
  Documentation strings of many new operators are sorely lacking, particularly
  NAMED-LAMBDA and *SWITCH.
 
] 
[Added a faster loop based remove-from-plist
[EMAIL PROTECTED] 
[Added a REMOVE-FROM-PLIST (same as SANS)
[EMAIL PROTECTED] 
[Docstring typo
[EMAIL PROTECTED] 
[Fix when-let documentation string.
[EMAIL PROTECTED] 
[Patch by Tayssin John Gabbour, fixing two typos.
Nikodemus Siivola <[EMAIL PROTECTED]>**20070318015005] 
[with-gensyms
Nikodemus Siivola <[EMAIL PROTECTED]>**20070225160042] 
[required-argument
Nikodemus Siivola <[EMAIL PROTECTED]>**20070225160010] 
[IF-LET, IF-LET*, WHEN-LET, and WHEN-LET*
Nikodemus Siivola <[EMAIL PROTECTED]>**20061107104944] 
[Extended parse-body with a :whole arg, report multiple docstring error.
[EMAIL PROTECTED] 
[Added (declare (ignore sub)) for type=
[EMAIL PROTECTED] 
[SETF-functions for lastcar, first-elt, and last-elt. :KEY and :TEST for starts-with and ends-with
Nikodemus Siivola <[EMAIL PROTECTED]>**20061017155126] 
[new: flatten, map-product, setp. fixed: set-equal
Nikodemus Siivola <[EMAIL PROTECTED]>**20061016150600] 
[REMOVE-KEYS renamed to SANS, with new --arguably better-- argument order
Nikodemus Siivola <[EMAIL PROTECTED]>**20061016125413] 
[ROTATE-RIGHT and ROTATE-LEFT replaced by a single function ROTATE
Nikodemus Siivola <[EMAIL PROTECTED]>**20061016123238] 
[variance and standard-deviation biased by default, documentation fixes for both
Nikodemus Siivola <[EMAIL PROTECTED]>**20061016114618] 
[documentation
Nikodemus Siivola <[EMAIL PROTECTED]>**20061015215052] 
[Added .boring and added public_html to it, so you can darcs get it into your local alexandria repo
[EMAIL PROTECTED] 
[tests passing
Nikodemus Siivola <[EMAIL PROTECTED]>**20061015160607] 
[initial version
Nikodemus Siivola <[EMAIL PROTECTED]>**20061015154202] 
Patch bundle hash:
8617de9eff47b6c2a0e021c08ca72b81d8b8566a
_______________________________________________
alexandria-devel mailing list
alexandria-devel@common-lisp.net
http://common-lisp.net/cgi-bin/mailman/listinfo/alexandria-devel

Reply via email to