バイナリクロック
Posted feedbacks - OCaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | let itobin i =
if i == 0 then [0]
else
let rec itob l i = match i with
0 -> 1::l
| 1 -> 1::l
| _ -> itob ((i mod 2)::l) (i/2)
in itob [] i
;;
let rec padding l =
if (List.length l) < 6 then padding (0::l)
else l
;;
let format_print l =
let d = [|"□";"■"|] in
let rec square_print l = match l with
[] -> print_string "\n"
| s::r -> print_string d.(s);
square_print r
in square_print l
;;
let () =
let t = Unix.localtime(Unix.time()) in
format_print (padding (itobin t.Unix.tm_hour));
format_print (padding (itobin t.Unix.tm_min))
;;
|



lunlumo #9282() [ Ruby ] Rating6/8=0.75
20:18の場合,例えば以下の様な出力をするイメージです。
出力例:
■□■□□
□■□□■□
see: Binary Clock Widget
Rating6/8=0.75-0+
[ reply ]