スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

どう書く?org F# バイナリクロック

「どう書く?org」http://ja.doukaku.org/に挑戦です。 
さて今回の問題は次のような内容。 
 
(問題) http://ja.doukaku.org/275/
 
時刻を二進数相当の表現で出力する時計アプリケーションを書いてください。 
 20:18の場合,例えば以下の様な出力をするイメージです。 
 
出力例: 
 ■□■□□ 
□■□□■□ 
 
今週のネタとリンクするので、この問題をとりあげました。
 
□■□■□□ 
□■□□■□ という形で表示されます。
 
コードは下の通り
 
let strBit order chOn chOff n =
    let rec sub rem res counter =
        if counter = order then
            res
        else
            let ch = if (rem &&& 1) <> 0 then
                        chOn
                     else 
                        chOff
            sub (rem >>> 1) (ch :: res) (counter+1)
    new string( Array.ofList(sub n [] 0))
 
let tm = System.DateTime.Now
[tm.Hour;tm.Minute]
  |> List.map (strBit 6 '■' '□')
  |> List.iter (fun s -> printfn "%s" s) 
  
実行例
 
□■□■□□
□□□■■■
 
スポンサーサイト

テーマ : プログラミング
ジャンル : コンピュータ

コメントの投稿

非公開コメント

プロフィール

T GYOUTEN

Author:T GYOUTEN
F#と英単語とフリーソフトと読書に興味があります。
ホームページでフリーソフトも公開しています。どぞ御贔屓に。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
フリーエリア
フリーエリア
blogram投票ボタン
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。