[B]ラムダ文かループ構文か


 筆者は、プロジェクトオイラーを解いている。

プロジェクトオイラーとは、
プログラミングを用いて、数学を解く問題集である。
http://projecteuler.net/

例えば、問題1

  • 10未満の自然数のうち、3 または 5 の倍数には 3, 5, 6, 9 の4つであり、 これらの合計は 23 となる
  • 同様に、1,000 未満の 3 か 5 の倍数になっている数字の合計を求めよ。
このような具合である。

 当初、筆者は、ラムダ文克服のため、
C#(.Net4.0)にて、この問題にチャレンジした。
初めてラムダ文を使用したので、解くのに1日かかった。

 今日、改めて、慣れ親しんでいるC++のループ構文にて、
この問題にチャレンジした。
今後のために、フレームワークを構築した時間も含めて、
2時間弱で問題を解くことができた。

 ここで思う。
時間的コストをかけてまで、
ラムダ文を学習することは、
必要不可欠だろうか?

 結論は、出ない。
なぜなら、「鶏が先か卵が先か」となるからである。

それぞれは、発想が異なる。
メリット、デメリットがあり、トレードオフがある。
要するに、学習初期の言語がなにであったか、なのである。
良い悪いではない。

ラムダ文とループ構文は、漢字とローマ字に例えられる。

ラムダ文は漢字である。
長所は、可読性にある。
C#を完全に習得できていなくても、なんとなくニュアンスは伝わる。
しかし、いざ書こうとすると、難しい。

ループ構文はローマ字である。
意味がわからなくとも、とりあえずは読める。
全部読み終わって初めて、合点がいく。
それまでは雰囲気は掴めない。

したがって、グループ単位で開発を進める場合には、ラムダ文が、
個人単位で進める場合にはループ構文が、
適しているのではないかと思う。

これからプログラミングを習得しようとされる方は、
上記を踏まえて、言語の選定をされたい。