かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

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
// 田中 太郎

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