閑古鳥

オールドプログラマの日記。プログラミングとか病気(透析)の話とか。

F#

パイプで遊ぶ

Pipeline operatorを見て、ただ関数呼び出しの変形をしているだけで何が嬉しいのだろうと思っていた頃が私にもありました(AA略)。関数呼び出しが何重にもなっているとありがたさが実感できる気がします。 let H dummy = printf "H" let e dummy = printf "e"…

Pipeline operator

F#

> 演算子を使用するとシェルのパイプのようなことができるようです。演算子の左辺の値を右辺の関数に渡してくれます。 let inc x = x + 1 let dec x = x - 1 do printfn "%d" (dec(dec(dec(inc 3)))) do printfn "%d" (inc 3 |> dec |> dec |> dec) 上と下の…

リストに対する操作

F#

整数のリストに含まれる各要素の合計を求める関数を書いてみました。リストは [0;1;2;3] などとして定義しますが、Haskellのように [0..5] みたいにも書けます。これは [1, 2, 3, 4, 5] と等価です。再帰を使ってみます。 let arr = [1..10] let rec sum_rec…

WPFでコントロールを入れ子にしてみる

WPFのコントロールは自由に入れ子にすることができるので、例えばコンボボックスの中にコンボボックスを入れるなどといった事も簡単に行えます。コンボボックスの各要素をチェックボックスにしてみます。 #light #I @"C:\Program Files\Reference Assemblies…

F# で WPF

WPFにも挑戦してみました。Windowにコントロールを追加するメソッド(AddChild)が外部からアクセスできないので芋づる式にクラス定義と継承までやってしまいました。理解はしていません。MSDNブログの Learning WPF through F#, and vice versa, by John Liao…

F#

F#

関数型言語の勉強をしようかとF#をインストールしてみました。インストールしたら自動的に Visual Studio からプロジェクトを作成できるようになるようです。とりあえずこんにちは世界から。.NET Frameworkを使用できるので、フォームにボタンを置いて、ボタ…