Elementary cellular automaton/Random number generator: Difference between revisions

Content added Content deleted
m (→‎{{header|Haskell}}: Minor reduction. Applied Ormolu.)
Line 245: Line 245:


instance RandomGen (Cycle Int) where
instance RandomGen (Cycle Int) where
next c =
next c = let x = c =>> step (rule 30) in (fromBits (view x), x)
split c = (c, fromList (reverse (view c)))</lang>
let x = c =>> step (rule 30)
in (fromBits (view x), x)
split = (,) <*> (fromList . reverse . view)</lang>


<pre>λ> let r30 = fromList [1,0,1,0,1,0,1,0,1,0,1,0,1] :: Cycle Int
<pre>λ> let r30 = fromList [1,0,1,0,1,0,1,0,1,0,1,0,1] :: Cycle Int