ここで記事を読んでいた:http : //www.paulgraham.com/avg.htmlそして「blub paradox」に関する部分は特に興味深いものでした。主にc ++でコーディングしているが、他の言語(主にHaskell)にさらされている人として、これらの言語ではc ++で複製するのが難しいいくつかの便利なことを知っています。質問は、主にc ++と他の言語の両方に習熟している人に対するものですが、c ++のみで記述している場合は概念化や実装が難しい言語で使用する強力な言語機能やイディオムはありますか?
特に、この引用は私の注意を引きました:
帰納法により、さまざまな言語間の力の違いをすべて見ることができるプログラマーは、最も強力な言語を理解しているプログラマーだけです。(これはおそらく、Eric RaymondがLispを使ってより良いプログラマーにしたことを意味するものです。)他の人の意見は、Blubパラドックスのために信頼できません。彼らがプログラムについて考える方法。
私がc ++を使用することで「Blub」プログラマと同等であることが判明した場合、次の質問が発生します。他の言語で遭遇した概念化が難しいと思われる有用な概念やテクニックはありますかC ++で書いているか、「考えている」?
たとえば、PrologやMercuryなどの言語に見られるロジックプログラミングパラダイムは、キャスターライブラリを使用してc ++で実装できますが、最終的には概念的にPrologコードの観点から考えており、これを使用する場合はc ++の同等物に翻訳しています。プログラミングの知識を広げる方法として、C ++開発者としては知らないかもしれない他の言語でより効率的に表現される有用な/強力なイディオムの他の同様の例があるかどうかを見つけようとしています。思い浮かぶもう1つの例は、Lispのマクロシステムです。プログラム内からプログラムコードを生成すると、いくつかの問題に対して多くの利点があるようです。これは、c ++内から実装して考えることは難しいようです。
この質問は、「c ++ vs lisp」の討論や、あらゆる種類の言語戦争型の討論を意図したものではありません。このような質問をすることが、私が知らないことを知らないことを知ることができる唯一の方法です。
there are things that other languages can do that Lisp can't
はチューリング完全なので、ありそうもない。おそらく、あなたはLispで行うのが実用的でないいくつかのことがあると言うつもりでしたか?プログラミング言語についても同じことが言えます。