1 2 3 4
graycode 1 = [[0],[1]] graycode (n+1) = map (0:) gn ++ map (1:) (reverse gn) where gn = graycode n main = mapM_ print (graycode 4)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
[0,0,0,0] [0,0,0,1] [0,0,1,1] [0,0,1,0] [0,1,1,0] [0,1,1,1] [0,1,0,1] [0,1,0,0] [1,1,0,0] [1,1,0,1] [1,1,1,1] [1,1,1,0] [1,0,1,0] [1,0,1,1] [1,0,0,1] [1,0,0,0]