関数型言語の勉強をしようかとF#をインストールしてみました。インストールしたら自動的に Visual Studio からプロジェクトを作成できるようになるようです。
とりあえずこんにちは世界から。.NET Frameworkを使用できるので、フォームにボタンを置いて、ボタンを押したらメッセージボックスに「Hello World!」と表示させてみます。
open System open System.Windows.Forms let form = new Form() let btn = new Button() do form.Controls.Add(btn) do btn.Text <- "Click" do btn.Click.Add(fun arg -> MessageBox.Show("Hello World!") |> ignore) do Application.Run(form)
btn.Clickがイベントハンドラで、そこに匿名関数を渡しています。 |> ignore は MessageBox.Show の戻り値を無視するためのもの。これをやらないと関数の戻り値に DialogResult があるものとみなされてしまい、 EventHandler と型が違うと怒られてしまいます。
あとは関数作ったりカリー化したり。
let add x y = x + y do printfn "%d" (add 1 2) let add2 = add 2 do printfn "%d" (add2 5)
なかなか面白いです。現実逃避にもってこいですね(仕事するより疲れるけど……)。
はてなダイアリーでは色分けできないのかな? キーワード間違えているかも。C#がcsだからF#はfsかと思ったけど違うのかな。