問題タブ [programming-languages]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 変数名を数字で始めてはいけないのはなぜですか?
しばらく前に、新しい C++ 開発者と一緒に仕事をしていたときに、彼が「なぜ変数名を数字で始められないのですか?」という質問をしました。
一部の数値にはテキストを含めることができ(123456L、123456U)、コンパイラがアルファ文字を含むすべてのものを変数名と見なしていた場合、それは不可能であることを除いて、答えを思いつくことができませんでした。
それは正しい答えでしたか?他に理由はありますか?
c - DrScheme ではテール コールの最適化はどのように実装されていますか?
トランポリンは TCO を実装する効果のない方法だと聞いたことがあります。DrScheme(技術的にはPLAIスキーム)はどのようにそれを行うのですか?それは「正しい」方法で実行されますか (つまり、スタックとトランポリンを通過するのではなく、テール コールに直接分岐するアセンブリ コードを生成します)?
programming-languages - テール コールの最適化にガベージ コレクションが必要なのはなぜですか?
末尾呼び出しの最適化にガベージ コレクションが必要なのはなぜですか? テールコールを実行したい関数にメモリを割り当てた場合、テールコールを実行してそのメモリを取り戻す方法がないからですか? (したがって、末尾呼び出しの後にメモリを再利用できるように、スタックを保存する必要があります。)
vb.net - なぜVB.netはとても冗長なのですか? 脂肪を減らすことは可能ですか?
成熟するにつれて、言語はより冗長になりますか? VB.net の新しいバージョンごとに、より多くの構文が追加されているように感じます。キーワード「Dim」のような脂肪を減らすことは可能ですか? C# も、バージョン 1 から構文が増えているように感じます。
programming-languages - コードを機能させるためにどのような方法をとっていますか?
将来、プログラムを簡単に並列化できるようにします。
programming-languages - Schemeでのカレー関数の実装
次のことをするとどうなりますか?
私はこれができることを理解しています:
そして今、私はカレーを使うことができます。私が興味を持っているのは、関数の定義です。ラインはありますか
xを引数として新しいラムダを作成し、それを1で呼び出しますか?それとも、それよりも賢く、既存のものを再利用するだけですか。(たとえば、私がそうする場合(curried 0)
、その((func x) 1)
行は次のようになります(curried 1)
-PLAIスキームはこれを行いますか?)
language-agnostic - (非インターフェイス型の) 継承をプログラミング言語から削除する必要がありますか?
これは非常に物議を醸すトピックです。「いいえ」と言う前に、それは本当に、本当に必要なのでしょうか?
私は約 10 年間プログラミングをしていますが、他の方法では解決できなかった問題を継承によって解決したときのことを思い出すことができるとは正直言えません。一方で、継承を使用したときのことを何度も思い出すことができます。それは、そうしなければならないと感じたから、または自分が賢いのにその代償を払ってしまったからです。
実装の観点から、継承の代わりに集約または別の手法を使用できない状況は実際には見当たりません。
これに対する私の唯一の注意点は、インターフェイスの継承を引き続き許可することです。
(アップデート)
「必要な場合もある」と言うのではなく、なぜそれが必要なのか、例を挙げてみましょう。それは本当にまったく役に立ちません。あなたの証拠はどこにありますか?
(更新 2 コード例)
これは、継承のない、より強力でより明示的な IMO である従来の shape の例です。現実の世界では、何かが実際に他の何かの「である」ということはほとんどありません。ほとんどの場合、「Is Implemented in Terms」の方が正確です。
c# - 署名されていない型をサポートしない .NET と互換性のある言語はありますか?
私が C# でライブラリを作成していて、誰がそれを使用するのか分からないとしましょう。
ライブラリのパブリック インターフェイスには、uint、ushort などの符号なし型がいくつかあります。どうやらこれらの型は CLS に準拠しておらず、理論的に言えば、それらを使用できない言語が存在する可能性があります。
実際にそのような言語はありますか?
compiler-construction - コンパイルされた言語は強力な型付けを持っているのに、解釈された言語はほとんどダックタイプ化されているのはなぜですか?
私はそれを知りません、それには技術的な理由がありますか?型付けが弱い言語のコンパイラを実装するのは難しいですか? それは何ですか?