スポンサーサイト

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

F#雑記 Numbering

 Anarchy_Golfの次の問題をF#でやってました 
 
問題は 
「インプットが1で 
インプットが2で 
   1.1 
   1.2 
   1.3 
   2.1 
   2.2 
   2.3 
   3.1 
   3.2 
   3.3 
インプットが3で 
   1.1 
      1.1.1 
      1.1.2 
      1.1.3 
   1.2 
      1.2.1 
      1.2.2 
      1.2.3 
   1.3 
      1.3.1 
      1.3.2 
      1.3.3 
   2.1 
      2.1.1 
      2.1.2 
      2.1.3 
   2.2 
      2.2.1 
      2.2.2 
      2.2.3 
   2.3 
      2.3.1 
      2.3.2 
      2.3.3 
   3.1 
      3.1.1 
      3.1.2 
      3.1.3 
   3.2 
      3.2.1 
      3.2.2 
      3.2.3 
   3.3 
      3.3.1 
      3.3.2 
      3.3.3 
と表示するような関数を定義せよ」というものです。 
コードは次の通りです。 
 
> let rec numberingSub (str:string) (depth:int) (limitDepth:int)= 
    if depth = limitDepth then 
        () 
    else 
        for i in [1 .. 3] do 
            let curStr =   
                if depth = 0 then sprintf "%d" i 
                else sprintf "   %s.%d" str i    
            printfn "%s" curStr 
            numberingSub curStr (depth + 1) limitDepth 
 
let numbering = numberingSub "" 0;; 
 
val numberingSub : string -> int -> int -> unit 
val numbering : (int -> unit) 
 
> numbering 3;; 
   1.1 
      1.1.1 
      1.1.2 
      1.1.3 
   1.2 
      1.2.1 
      1.2.2 
      1.2.3 
   1.3 
      1.3.1 
      1.3.2 
      1.3.3 
   2.1 
      2.1.1 
      2.1.2 
      2.1.3 
   2.2 
      2.2.1 
      2.2.2 
      2.2.3 
   2.3 
      2.3.1 
      2.3.2 
      2.3.3 
   3.1 
      3.1.1 
      3.1.2 
      3.1.3 
   3.2 
      3.2.1 
      3.2.2 
      3.2.3 
   3.3 
      3.3.1 
      3.3.2 
      3.3.3 
val it : unit = () 
スポンサーサイト

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

プロフィール

T GYOUTEN

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

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

この人とブロともになる

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