C#で学ぶF#入門・再(2)

「C#で学ぶF#入門・再(2)」関連のつぶやきです。
3

準備

七誌 @7shi

腹を決めた。今月はF#に賭ける!

2013-04-03 19:18:58
七誌 @7shi

中途半端は良くない。毒を食らわば皿まで。

2013-04-03 19:28:35

勉強会当日

あえとす @aetos382

F# は自動的に数値型をキャストしてくれない #cs2fs

2013-04-10 19:56:53
あえとす @aetos382

F# の float は C# でいう double #cs2fs

2013-04-10 19:57:49
あえとす @aetos382

変数の初期化は let x = 1。初期化以外の = は比較(==ではない) #cs2fs

2013-04-10 20:00:49
あえとす @aetos382

let mutable x = 1 のように mutale をつけると変更できる変数になる。代入は x <- 2 #cs2fs

2013-04-10 20:01:51
あえとす @aetos382

let (a,b) = (1, 2) で複数同時代入 #cs2fs

2013-04-10 20:02:24
あえとす @aetos382

fsi では最後に評価した値が it という変数に入る #cs2fs

2013-04-10 20:08:03
あえとす @aetos382

it の型はころころ変わるよ。 #cs2fs

2013-04-10 20:08:59
あえとす @aetos382

printf と printfn がある。printfn は printf の末尾に改行が入るやつ。 #cs2fs

2013-04-10 20:13:56
あえとす @aetos382

F# の printf はタイプセーフだ!C とは違うのだよ C とわ! #cs2fs

2013-04-10 20:16:05
あえとす @aetos382

関数定義 let inc = fun x -> x + 1 / C# で言うと int inc(int x) { return x + 1; } 関数を変数に入れてる #cs2fs

2013-04-10 20:28:45
あえとす @aetos382

let add = fun x y -> x + y は let add x y = x + y のようにも書ける。

2013-04-10 20:42:03
あえとす @aetos382

F# では(mutable でなければ)変数への再代入ができないので、代入ではなく束縛と呼ぶ。 #cs2fs

2013-04-10 20:43:32
あえとす @aetos382

関数を変数に束縛しないで呼ぶこともできる。 (fun x -> x + 1) 1;; で 2 になる。束縛するときのように fun を省略する書き方はできない。 #cs2fs

2013-04-10 20:45:09
あえとす @aetos382

C# で言う void が F# で言う unit。プログラム中で書きたいときは () と書く。 #cs2fs ツッコミちょっと待ってね…

2013-04-10 20:46:36
あえとす @aetos382

戻り値のある関数で戻り値を捨てたいときは ignore 関数を使う。ただ戻り値を取らないだけだとエラーになる。fsi だと戻り値は暗黙に it に入るので警告にはならない。 #cs2fs

2013-04-10 20:54:58
あえとす @aetos382

F# ではコード順で前に定義してない関数は呼べない。 #cs2fs

2013-04-10 21:10:46
あえとす @aetos382

2つの関数が相互に呼び合うような相互再帰では and を使う。 let rec f () = g () and g () = f () #cs2fs

2013-04-10 21:29:13
1 ・・ 5 次へ