data Color
= White
| Blue
| Red
| Green
| Yellow
deriving (Show, Eq)
next :: Color -> [Color]
next color = case color of
White -> [Blue]
Blue -> [White, Red]
Red -> [Blue, Green]
Green -> [Red, Yellow]
Yellow -> [Green]
count
:: [Color
] -> Int -> Intcount col n = count (col >>= next) (n-1)
main
= mapM_ print $ map (count
[White
, Blue
, Red
, Green
, Yellow
]) [1..8]
ZGF0YSBDb2xvciA9IFdoaXRlIHwgQmx1ZSB8IFJlZCB8IEdyZWVuIHwgWWVsbG93IGRlcml2aW5nIChTaG93LCBFcSkKCm5leHQgOjogQ29sb3IgLT4gW0NvbG9yXQpuZXh0IGNvbG9yID0gY2FzZSBjb2xvciBvZgogIFdoaXRlIC0+IFtCbHVlXQogIEJsdWUgLT4gW1doaXRlLCBSZWRdCiAgUmVkIC0+IFtCbHVlLCBHcmVlbl0KICBHcmVlbiAtPiBbUmVkLCBZZWxsb3ddCiAgWWVsbG93IC0+IFtHcmVlbl0KCmNvdW50IDo6IFtDb2xvcl0gLT4gSW50IC0+IEludApjb3VudCBjb2wgMSA9IGxlbmd0aCBjb2wKY291bnQgY29sIG4gPSBjb3VudCAoY29sID4+PSBuZXh0KSAobi0xKQoKbWFpbiA9IG1hcE1fIHByaW50ICQgbWFwIChjb3VudCBbV2hpdGUsIEJsdWUsIFJlZCwgR3JlZW4sIFllbGxvd10pIFsxLi44XSA=