07012010 Haskell
数の子が好き。数の子のあんま入ってない松前漬けは認めない派です。年始は、松前漬けの数の子で、日本酒やってた。
そんなわけで、鯡数というものを思いついたのでHaskellで。
import System.IO.UTF8 as U
unfold p h t x | p x = []
| otherwise = h x : unfold p h t (t x)
int2bin = reverse . unfold (==0) (`mod`2) (`div`2)
kazunoko :: [Int] -> String
kazunoko [] = ""
kazunoko (s:xs) | s == 1 = '魚' : (kazunoko xs)
| s == 0 = '非' : (kazunoko xs)
| otherwise = error "not binary"
nishin :: Int -> String
nishin = kazunoko . int2bin
main = do U.putStrLn $ nishin 2010
unfoldはプログラミングHaskellから。この本いいです、マジ。
さて実行
$ runhaskell nishin.hs
魚魚魚魚魚非魚魚非魚非