C#3.0とlambda
かなり久々に(特に目的はないけど)C#3.0をいじってみました。
プレビュー版なので仕様が完全に実装されてなかったり、
意味不明な挙動をする点が多々あったりするけど・・。笑
をScheme風に書くと
Funchoge = null;
hoge = (int x) => x==1 ? 1 : x * hoge(x-1);
かな?w(無駄に括弧増やしてみたハムニダ
hoge =
(( int x ) =>
((x == 1) ?
1 :
(x * hoge( x - 1 ))));
あらかじめhogeを宣言しておかないと
再帰部分でコンパイラに「見つからないぜ!!」と怒られる・・・。
新しい文法が加わると、インデントにちょっと悩みますねー。
# 匿名メソッドが追加された時も色々考えた記憶が
さすがに後者のような書き方はしないと思いますが。笑