0

「純粋な」関数型言語でプログラミングしたことはありません。私は C と C++ で資格を取得し、Java、C#、PHP などを試しましたが、いつも C++ に戻っていました。少しマゾかもしれませんが、低レベルなものが大好きです。

また、LUA、Python、またはその他のスクリプト言語を (これらの言語が迅速な開発に重点を置いて) 組み込むことで、迅速な開発を迅速に達成できることもわかりました。

手短に言えば、私は C/C++ をやめたわけではないので、それについて話さないでください。しかし、私は C++11 を学ぶ時間がほとんどなく、関数型プログラミングへの曲線が将来的に加速することを感じ始めています。

私の質問は 2 つあります。C++11 のラムダ機能の概念が「借用」されたのはどの言語で、理想的な言語ではない場合、または C++11 の新しいラムダを使用するための「方法」の感触をつかむには、どの言語が理想的でしょうか。機能(しゃれは意図されていません)。

PS: 正直なところ、C++ への新しい「肥大化した」追加にはあまり満足していません。私はC++が好きだったのですが、言語が肥大化しているように感じ始めています。私はそれが事実であると主張しません。「理解する」には関数型言語の経験が必要だと聞きました。

正直なところ、町に新しいヘビー級がいるようです. 最初は単なる「手続き型」プログラミングでしたが、次に OOP パラダイム シフトが起こりましたが、現在は「関数型」の方法に向かっているようです。

もちろん、手続き型プログラミングはまだ健在です (クラス内で)。ラムダ方式が (適切に使用されて) クラス/oop 設計のどこに収まるか疑問に思う必要があります。手続き部分の代わりになるだけでしょうか?OOP を過去のものにしますか (pfft)? それとも完全に別のもの (たとえば、手続き型コードをカプセル化したオブジェクトのイベントを生成する機能イベント システム) ですか?

4

2 に答える 2

0

C++11 のラムダについて話すことはできませんが、Java 8 にラムダを追加する理由の一部は、透過的な同時実行サポートをすぐに使用できるようにすることであることは知っています。どのように?andStreamを呼び出すだけで並列処理と順次処理を切り替えることができる(遅延) インターフェースを提供します(これらのメソッドは新しいストリームを返し、既存のストリームに副作用はありません)。parallelsequential

のメソッドを見るとStream、ラムダ機能がなければ非常に使いにくいことがすぐにわかります。ラムダと組み合わせてストリームでできることの例をいくつか見てみましょう。

そのようなライブラリがまだない場合は、C++11 用の同様のライブラリを実装できるはずです。

于 2013-09-17T09:10:55.820 に答える