どう書く? - バイナリクロック
バイナリクロック- どう書く? org をF#で考えてみました。
張り切りすぎて多少余計な機能が実装されています。。。
これを実行すると、現在時刻を表示します。
open System module BinaryClock = type BinChar = {Zero : string; One : string } let ConvertBinNumberString number (binchar : BinChar) = let mutable num = number let mutable result = "" while num <> 0 do match num &&& 1 with | 0 -> result <- binchar.Zero + result | _ -> result <- binchar.One + result num <- num >>> 1 result; let ConvertBinNumberStringDefault number = ConvertBinNumberString number {Zero = "□"; One = "■"} let CurrentTime () = let h = DateTime.Now.Hour printfn "%s : %s" (ConvertBinNumberStringDefault h) (h.ToString("00")) let m = DateTime.Now.Minute printfn "%s : %s" (ConvertBinNumberStringDefault m) (m.ToString("00")) [<EntryPoint>] let main(args : string[]) = BinaryClock.CurrentTime () 0