整数を2進数の文字列に変換する

びわこ開発合宿に間に合わなかったので今さらな気もしますが、ようやくHIGHER-ORDER PERLが到着しました。第1章に整数を2進数の文字列に変換する関数が載っていたので、それをHaskellに直してみました。

module Main (main) where

binary :: Int -> String
binary 0 = "0"
binary 1 = "1"
binary n = 
  let (k, b) = n `divMod` 2
  in binary k ++ show b

main :: IO ()
main = print $ binary 37
-- => "100101"

Higher-Order Perl: Transforming Programs with Programs

Higher-Order Perl: Transforming Programs with Programs