スポンサーサイト

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

どう書く?org F# ナベアツ算

ちょっとプログラムを書いてみたくなったので、
「どう書く?org」http://ja.doukaku.org/
に挑戦してみました。
出されたお題をいかに解くかという、日本版「Project Euler」のようなサイトです。
ただ、Project Eulerでは言語別でちゃんとF#の欄もあるのですが、こちらではまだF#はOther扱いです。
(テレビ映画の「LOST」みたいです。)
とりあえず2問解いてみたのですが、次がその内の一本です。
 
(問題)
3の倍数と3がつく数字の時だけアホになる」コードを実装して下さい。 
また、余裕のあるかたは更に、 
「8の倍数のときに人探しをしてる感じに」「5の倍数のときにナルシストに」なるよう実装して下さい。
 
という、簡単な問題です。
ただただ、関数の部分適用と|>と>>を使いたかったため、次のようなコードになりました。
(よい子のみんなは真似してはいけません。効率が悪いです。)
 
let f k addStr (n,s) =
    if n % k = 0 then
        (n,s + addStr)
    else
        (n,s)
 
let fc3 (n,s) =
    let AhoStr = "Aho"
    if n.ToString().Contains("3") then
        (n,s + AhoStr)
    else
        f 3 AhoStr (n,s)
        
let g (n,s) =
    if s = "" then
        n.ToString()
     else
        s
 
[for i in 1 .. 40 -> (i,"")]
|> List.map (fc3 >> f 8 "Doko" >> f 5 "Naru" >> g )  
|> List.iter (printfn "%s")
 
ということで今回はここまでで失礼いたします。
スポンサーサイト

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

trackback


この記事にトラックバックする(FC2ブログユーザー)

メイドイン俺

メイドイン俺 の最新動画や評価レビュー、攻略情報なら「メイドイン俺 」へ!

コメントの投稿

非公開コメント

逆?

5の倍数と8の倍数の時が逆じゃないですか?

うげ

うげげげげげげ、間違ってました。御指摘ありがとうございました。訂正しました。
プロフィール

T GYOUTEN

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

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

この人とブロともになる

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