kurimuraの適当Haskell勉強日記

2006-12-27適当

解けそうな問題解いて遊んでみる。

Gray 2進符号04:54

この問題を解いてみよう。

http://karetta.jp/article/blog/oneline/009671

反射させるだけでいいや

import Data.Bits
g :: Integer -> [Integer]
g n     = map (\a -> xor a $ shiftR a 1) $ [0..2^n-1]
main = getLine >>= print.g.read >> main

ビット変化列 04:54

この問題を解いてみよう。

http://karetta.jp/article/blog/oneline/009668

log使うあたりダサすぎ。もっとスマートに書きたい

import Data.Bits
f(n+1)=concat $ replicate 2 $
	zipWith(((ceiling.logBase 2.fromInteger.(1+)).).xor)
	[0..2^n][1..2^n]
main = getLine >>= print.f.read >> main