De Bruijn sequences: Difference between revisions

m
→‎Array-based: added type annotation
(→‎{{header|Haskell}}: added alternative solution)
m (→‎Array-based: added type annotation)
Line 1,391:
 
<lang haskell>import Control.Monad.State
import Data.Array (Array, listArray, (!), (//))
import qualified Data.Array as A
 
Line 1,399:
k = length s
db :: Int -> Int -> State (Array Int Int) [Int]
db t p =
if t > n
Line 1,415 ⟶ 1,416:
setArray i x = modify (// [(i, x)])
seqn = db 1 1 `evalState` A.listArray (0, k*n-1) (repeat 0)
in [ s !! i | i <- seqn ++ take (n-1) seqn ]</lang>
Anonymous user