2007-10-01から1ヶ月間の記事一覧

F#でテトリスを作ってみた

※ [2007.10.29] 画像載せました&ちょっと追記 ダウンロードはこちら。 http://www.geocities.jp/u_1roh/software/tetris_by_fsharp.zip ソースはこちら。 いまいち F# らしいコードになっていない気がする。誰か添削してくれるといいのに。 #light open Sys…

製造業も「ソフトウェア企業」になっていく?

CAD

組み込みソフトウェアの話ではないよ。製造業の世界では「フロントローディング」が進められている。日本語訳すれば「前足加重」だろうか。設計 → 製造 という流れを考えたときに、後工程の製造で問題が発覚して設計に手戻りするのは避けようというものだ。…

パイプ演算子 |> (F#)

この演算子はイイ!UNIX系のコマンドは、以下のようにパイプで連結して使われることがよくある。 % ls | grep hogeこれと同じようなことがF#の関数呼び出しで出来るのだ。 #light let numbers = [ 1; 4; 2; 5; 2; 6; 9] List.iter (fun x -> printfn "%i" x)…

F#から.NETライブラリの呼び出し(F#)

F#は.NETの上で動作する。だから.NETの強力なライブラリにアクセスが出来る。 static 関数を呼び出す #light open System Console.WriteLine( "Hello {0} libraries.", ".NET" ) FileInfo クラスを使う #light open System.IO let file = new FileInfo( "tes…

命令型プログラミング(F#)

F# はマルチパラダイム言語だ。次の3つのパラダイムをサポートしている。 関数型プログラミング (functional programming) 命令型プログラミング (imperative programming) オブジェクト指向プログラミング (object-oriented programming) ここでは命令型プ…

スペシャリストとゼネラリスト

スゲーことに気づいちゃったよ。「そんなの当たり前だろ」って言われちゃうことかもしれないけど。 気づいたこと。 それは、スペシャリストの方が general で、ゼネラリストの方が special だ、ってこと。 ゼネラリスト 色んな分野を広く浅くつまみ食いし、…

union type (F#)

"Foundations of F#" には "union type" って書いてあるんだけど、日本語訳すると何になるんだろう? (* ジャンケン型 列挙型(enum)のように定義できる *) type Janken = Goo | Choki | Pah let janken = Choki printfn "%A" janken // "Choki" と表示 (* …

タプル型、レコード型 (F#)

タプル型の定義とか、レコード型の定義とか。 (* タプル値を定義 *) let tup = (100, "hello") (* タプルから要素を取得 *) let num, str = tup printfn "num = %d, str = %s" num str (* タプル型をプリントする関数 (引数 : 型 * 型) で引数にタプル型を指…