F#でラムダ式を配列に入れる離れ業がある
pars.fs を解析しているときに気づいたのだが、
let funcs = [| (fun x -> x + 2); (fun x -> x * 2); (fun x -> x / 2) |]
ってことができる。ラムダ式を配列にするのだけど、こういうことができる。
> funcs.[1] 10 ;; val it : int = 20
あらかじめ、引数が1つのint型のラムダ式を入れる、ってのを推測してくれるから、
let funcs = [| (fun x -> x + 2); (fun x -> x * 2); (fun x -> x / 2); (fun x y -> x + y ) |]
は、fun x y のところでコンパイルエラーになる。
これって C# で書くとどうなるんだろうか?