-- Eight.hs - The Fractal Dimension Walker [0..8] module Eight where h8 :: Int -> Int h8 x = let dragon = iterate (\s -> s ++ [1] ++ map (1-) (reverse s)) [1] dragonSeq = dragon !! (min 10 (x `div` 100)) dragonValue = dragonSeq !! (x `mod` (length dragonSeq)) in (dragonValue * 4 + x `div` 10) `mod` 9