[CM] 'drunk' behavior
Rick Taube
taube@uiuc.edu
Sun, 3 Sep 2006 19:58:32 -0500
indeed. the bug is that the value is bounded (between (- width)
width) which means that there is 1 more neg. number than positive :/
if you change that to (between (- width) (+ width 1) ) then it
behaves correctly ie drunkvec averages to the initial value:
(defun drunkvec (startpit len &optional (stepsize 1))
(loop repeat len
for r = startpit then (drunk r stepsize)
collect r))
(defun avr (l) (floor (apply #'+ l) (length l)))
? (avr (loop repeat 30 append (last (drunkvec 50 20))))
=> 49
? (avr (loop repeat 30 append (last (drunkvec 50 20))))
=> 51
? (avr (loop repeat 30 append (last (drunkvec 50 20))))
=> 50
this is fixed in cvs (rev 1.14 of data.scm). thanks drew!