2011年1月22日 星期六

[Exer] Gray Code in Unfoldr

有點難記
寫在blogger方便記憶好了

seed :: pair of integer
fst seed = decimal number
snd seed = length of gray code

graycode = unfoldr g p
p = (==0) ◦ snd
g = (div ◦ (id × (2^) ◦ (-1)) × (flip (-) ◦ ((+1) × (2^)) × (-1) ◦ snd) ◦ dup) ◦ dup

dup x = (x,x)

實在是長到有點令人厭煩XD
接下來是 unfoldl