かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

F#をやりはじめてみました

letで代入みたいなものが出来る。
printf関数でコンソールに出力できる。
関数の引数は,で区切らずにスペースで区切る。
配列は[]で、配列の要素の区切りは;でやる。
コメントは//で出来そう

let array = ["a"; "b"; "c"]
printf "%A\n" array
// ["a"; "b"; "c"]

関数の定義もletでやる

let add a b = a + b
let answer = add 10 5
printf "%d\n" answer
// 15

関数の連鎖みたいなのは|>でやる

let f a = a + 1
// 同じ意味
let answer1 = f(f(f(10)))
let answer2 = 10 |> f |> f |> f
printf "%d %d\n" answer1 answer2
// 13 13

C#でいうusingはopenでやる

open System.Collections.Generic

// 普通にnewできる genericも<>でOK
let dict = new Dictionary<string, string>()
// .[]でアクセスできる <-で代入
dict.["key"] <- "value"

printf "%s\n" dict.["key"]
// value

クラス定義はtypeでやる

type Person(name:string) =
    member obj.Name = name

let p = new Person("田中 太郎")
printf "%s\n" p.Name
// 田中 太郎

とりあえず今日は、ここまで。