筆者は、プロジェクトオイラーを解いている。
プロジェクトオイラーとは、
プログラミングを用いて、数学を解く問題集である。
http://projecteuler.net/
例えば、問題1
- 10未満の自然数のうち、3 または 5 の倍数には 3, 5, 6, 9 の4つであり、 これらの合計は 23 となる
- 同様に、1,000 未満の 3 か 5 の倍数になっている数字の合計を求めよ。
このような具合である。
当初、筆者は、ラムダ文克服のため、
C#(.Net4.0)にて、この問題にチャレンジした。
初めてラムダ文を使用したので、解くのに1日かかった。
今日、改めて、慣れ親しんでいるC++のループ構文にて、
この問題にチャレンジした。
今後のために、フレームワークを構築した時間も含めて、
2時間弱で問題を解くことができた。
ここで思う。
時間的コストをかけてまで、
ラムダ文を学習することは、
必要不可欠だろうか?
結論は、出ない。
なぜなら、「鶏が先か卵が先か」となるからである。
それぞれは、発想が異なる。
メリット、デメリットがあり、トレードオフがある。
要するに、学習初期の言語がなにであったか、なのである。
良い悪いではない。
ラムダ文とループ構文は、漢字とローマ字に例えられる。
ラムダ文は漢字である。
長所は、可読性にある。
C#を完全に習得できていなくても、なんとなくニュアンスは伝わる。
しかし、いざ書こうとすると、難しい。
ループ構文はローマ字である。
意味がわからなくとも、とりあえずは読める。
全部読み終わって初めて、合点がいく。
それまでは雰囲気は掴めない。
したがって、グループ単位で開発を進める場合には、ラムダ文が、
個人単位で進める場合にはループ構文が、
適しているのではないかと思う。
これからプログラミングを習得しようとされる方は、
上記を踏まえて、言語の選定をされたい。