編集可能
2013年4月11日

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

変数の初期化は 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

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

2013-04-10 20:08:03
アエトス・ダメスカス🦅 @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
残りを読む(85)

コメント

コメントがまだありません。感想を最初に伝えてみませんか?