view src/rlm/play.clj @ 0:78a630e650d2

initial import
author Robert McIntyre <rlm@mit.edu>
date Tue, 18 Oct 2011 00:57:08 -0700
parents
children
line wrap: on
line source
1 (ns rlm.play)
3 (defn play
4 ([] (play 10))
5 ([n]
6 (loop [i 0
7 state false
8 turned-on (vec (repeat n false))
9 turned-off 0]
10 (if (== turned-off (dec n))
11 i
12 (let [p (rand-int n)
13 i (inc i)]
14 (if (not= p 0)
15 (if (and (not state) (not (turned-on p)))
16 (recur i true (assoc turned-on p true) turned-off)
17 (recur i state turned-on turned-off))
18 (if state
19 (recur i false turned-on (inc turned-off))
20 (recur i state turned-on turned-off))))))))