b1426e8648ef

Fix `random-around` for integer spreads
[view raw] [browse files]
author Steve Losh <steve@stevelosh.com>
date Mon, 08 Aug 2016 23:09:39 +0000
parents a25df85e26e5
children 5502971bb4bb
branches/tags (none)
files losh.lisp

Changes

--- a/losh.lisp	Mon Aug 08 16:29:47 2016 +0000
+++ b/losh.lisp	Mon Aug 08 23:09:39 2016 +0000
@@ -118,8 +118,11 @@
 
 (defun random-around (value spread)
   "Return a random number within `spread` of `value`."
-  (random-range (- value spread)
-                (+ value spread)))
+  (etypecase spread
+    (integer (random-range (- value spread)
+                           (+ value spread 1)))
+    (real (random-range (- value spread)
+                        (+ value spread)))))
 
 (defun d (n sides &optional (plus 0))
   "Roll some dice.
@@ -136,8 +139,6 @@
      plus))
 
 
-
-
 ;;;; Functions
 (defun juxt (&rest fns)
   "Return a function that will juxtipose the results of `functions`.