Drkcore

07 01 2010 Haskell Tweet

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から。この本いいです、マジ。

ProductName プログラミングHaskell
Graham Hutton
オーム社 / ¥ 2,940 ()
在庫あり。

さて実行

$ runhaskell nishin.hs 
魚魚魚魚魚非魚魚非魚非

About

  • もう5年目(wishlistありマス♡)
  • 最近はPythonとDeepLearning
  • 日本酒自粛中
  • ドラムンベースからミニマルまで
  • ポケモンGOゆるめ

Tag

Python Deep Learning javascript chemoinformatics Emacs sake and more...

Ad

© kzfm 2003-2021