関数型発祥らしく、計算や判定の類は書きやすく、逆に、副作用が中心になる、手続き型を強制されるような部分は(単体では)書きにくいか書けないという感じだと思いますの。

基本的に大抵のことは出来て、別関数でお膳立てしてあげれば何でも出来る、という印象ですの。(お膳立てしすぎると、最悪、ラムダ式の部分がただのラッパーになるというのはあるにしろ、、)


また、C#7からは、式中で変数の宣言が出来るようになったそうで、逆に言えば、C#6ではそれが出来ないですの。

でも、単に変数を加工していく感じを真似るだけなら、selectでメソッドチェーンしていく構造にする手も。あまり意味はないかも知れないけれど。

例えば、引数で数値をもらって、それを要素1つのIEnumerableに変換してselectを繰り返して、最後に数値に戻して返す。

public int getPiyo(int x) => Enumerable.Repeat(x, 1).Select(c => c * 2).Select(c => c / 2).First();

意味があるかはともかく、一応出来るようですの。

ちなみに、この例のような数値計算なら
public int getPiyo(int x) => x * 2 / 2;
と書くのが圧倒的に素直ですの。

0 コメント: