問題タブ [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.

0 投票する
6 に答える
646 参照

language-agnostic - 「部分専門化」をサポートする他の言語は何ですか?

部分的なテンプレートの特殊化は、C++ でのジェネリック プログラミングの最も重要な概念の 1 つです。例: 一般的な swap 関数を実装するには:

O(1) スワップをサポートするベクトルに特化するには:

そのため、汎用関数で swap(x, y) を呼び出すと、常に最適なパフォーマンスを得ることができます。

代替言語で同等のもの(または言語がスワップの概念をサポートしていない場合は、言語の部分的な特殊化の標準的な例)を投稿できれば、非常に感謝しています。

編集:したがって、回答/コメントした多くの人々は、部分的な特殊化が何であるかを本当に知らず、一般的なスワップの例が一部の人々の理解を妨げているようです。より一般的な例は次のとおりです。

部分的な特殊化は次のようになります。

完全な専門化は次のようになります。

なぜこれが重要なのですか?ジェネリック関数で foo(anything) を呼び出すことができるため:

コンパイル時に最も適切な実装を取得します。これは、C++ が最小限のパフォーマンス ペナルティで抽象化を実現する 1 つの方法です。

「部分専門化」の概念を明確にするのに役立つことを願っています。ある意味で、これは C++ が明示的なパターン マッチング構文 (Ocaml/F# の match キーワードなど) を必要とせずに型パターン マッチングを行う方法であり、ジェネリック プログラミングの邪魔になることがあります。

0 投票する
2 に答える
441 参照

programming-languages - 新しい言語を発明し、構文をチェックしますか?

新しいプログラミング言語を考えています。それを実装しようとする前に、コードの構文をチェックして、あいまいさが多くないかどうかを確認したいと思います。(クラスに var++++ を実行する可能性があるのはおかしいと思います)

0 投票する
1 に答える
117 参照

programming-languages - スコープ アナライザーに適した API

私はいくつかのコード生成ツールに取り組んでいますが、多くの複雑さはスコープ分析を行うことから生じます。などのことを知りたいと思うことがよくあります。

  1. 関数またはブロックの自由変数とは?
  2. このシンボルはどこで宣言されていますか?
  3. この宣言は何を覆っていますか?
  4. このシンボルの使用は、初期化の前に発生する可能性がありますか?
  5. この変数は潜在的にエスケープしますか?

そして、私のスコーピングクラッジを再考する時が来たと思います.

私はこの分析をすべて行うことができますが、使いやすく、理想的には、この作業を十分に遅延して実行できるように、API を構造化する方法を見つけようとしています。

人々がよく知っているこのようなツールは何ですか?また、API で何が正しく行われ、何が間違っていたのでしょうか?

0 投票する
4 に答える
4377 参照

java - Java は、呼び出すオーバーロードされた関数をどのように選択しますか?

これは純粋に理論的な質問です。

3 つの単純なクラスが与えられた場合:

そして、これらのクラスを操作するための関数:

次のコードのようです:

SubSub はこれらの両方にキャストできるため、正当に BASE CALLED または SUB CALLED のいずれかを出力する可能性があります。実際、関数の Sub バージョンを削除すると、BASE CALLED が出力されます。実際に起こることは、「SUB CALLED」が出力されることです。これは、Base バージョンが最初に呼び出されたため、どの関数が呼び出されるかは、関数が定義されている順序に依存しないことを意味しているようです。

Java は、関数のさまざまなバージョンをすべて調べて、継承スタックのトラバーサルが最も少ないバージョンを選択するだけですか? これは標準化されていますか?ドキュメントに記載されていますか?

0 投票する
6 に答える
4342 参照

c++ - C++ は、呼び出すオーバーロードされた関数をどのように選択しますか?

3 つのクラスがあるとします。

つまり、2 つのクラスがあり、その両方を拡張する 3 番目のクラス (多重継承) があります。

ここで、別のクラスで定義された関数があるとします。

そして、両方のインスタンスでこの関数を呼び出します。

これにより、関数呼び出しがあいまいであることを示すコンパイル時エラーが発生します。

これ以外に、C++ コンパイラが呼び出しがあいまいであると判断し、エラーをスローするケースはありますか? コンパイラはこれらのケースが何であるかをどのように判断しますか?

0 投票する
5 に答える
4870 参照

c# - Java の "throws" 句 (メソッド宣言内) が C# に含まれていないのはなぜですか?

Java の "throws" 句 (メソッド宣言内) が C# に含まれていないのはなぜですか?

0 投票する
8 に答える
726 参照

programming-languages - 最後に変数引数を持つ関数を持つプログラミング言語はありますか?

Python、C ++、Schemeなどはすべて、引数リストの最後に可変数の引数を取る関数を定義できます...

...次のように呼び出すことができます:

など...引数リストを使用して可変個引数関数を他の場所で実行できる言語はありますか?このようなもの:

これらすべてが有効な場合:

また、引数リストのどこかにあるオプションの引数はどうですか?

0 投票する
4 に答える
11348 参照

apache-flex - Flex の ArrayCollection の Contain メソッドがメモリ参照を参照するのはなぜですか?

Flex で使用.contains()する場合ArrayCollection、常にメモリ参照が参照されます。.equals()メソッドや.toString()メソッド、またはオーバーライド可能なものを見ているようには見えません。ArrayCollection代わりに、毎回ループして、探しているものが見つかるまで個々の項目をチェックする必要があります。

Flex/ActionScript がこのように作成された理由を知っている人はいますか? 人々が望むようにメソッドを使用するcontains()方法を提供してみませんか?

0 投票する
5 に答える
12281 参照

image-processing - 画像処理言語・環境

画像処理の研究に興味があります。そのためにはmatlabが最善の方法だと思いますが、現在、matlabにアクセスできません。octave を試してみましたが、何らかの理由で、png、bmp、または 1 つの特定の形式以外のものを読み込むことさえできません。ここでも R は重要ではないようです。

ここで選択する言語は何ですか? パール?

また、画像処理で見逃した可能性のある他の優れたチュートリアルを誰かに教えてもらえますか?

0 投票する
28 に答える
3108 参照

c++ - == の代わりに = を誤って使用

のようだ

それ以外の

諸悪の根源です。

すべてのコンパイラが構成可能な警告ではなくエラーとしてマークしないのはなぜですか?

if (x=y)この構造が役立つケースを見つけることに興味があります。