問題タブ [language-extension]

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 投票する
1 に答える
384 参照

haskell - Haskell TransformListComp 拡張機能

Haskell 言語拡張に関するこのガイドを読みましたが、TransformListComp の説明に多少混乱しました。砂糖を使わずにすべての TransformListComp 式を書き直そうとしましたが、正しいかどうかわかりません。

また、ガイドに間違いがあると思います: 「then group using clauses」の例は、「(groupBy (==))」が正しいタイプではないため不可能です (「Eq a」は使用できません)。

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

haskell - GeneralizedNewtypeDeriving が安全な Haskell ではないのはなぜですか?

GHC のマニュアル、Section Safe Languageから:

モジュール境界制御— 安全な言語を使用してコンパイルされた Haskell コードは、他のモジュールのエクスポート リストを通じて公開されているシンボルにのみアクセスすることが保証されます。これの重要な部分は、安全にコンパイルされたコードは、インポートできないデータ コンストラクターを使用してデータ値を調べたり作成したりできないことです。モジュール M がそのエクスポート リストを慎重に使用していくつかの不変条件を確立する場合、M をインポートする安全な言語を使用してコンパイルされたコードは、それらの不変条件を尊重することが保証されます。このため、このプロパティに違反するために使用される可能性があるため、安全な言語ではTemplate Haskellが無効になっています。GeneralizedNewtypeDeriving

を使用してモジュールの不変条件をどのように破ることができGeneralizedNewtypeDerivingますか?

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

haskell - FlexibleContexts と FlexibleInstances を使用する際の落とし穴は何ですか?

これらの柔軟なコンテキストとインスタンスは Haskell 標準では使用できないため、それらを使用する際に潜在的な問題があると思います。彼らは何ですか?それらは、あいまいさ、決定不能、インスタンスの重複などにつながる可能性がありますか?

ではなくについてのみ尋ねる同様の質問がありますが、答えは「それらを使用しても安全です」としか言いません。FlexibleInstancesFlexibleContexts

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

macros - Racket マクロでの require-clause の生成

さて、私は本当にばかでなければなりません。関数を指定して独自のサブモジュールにラップし、それをrequires するマクロ (より大きな事業の一部) を作成しようとしています。これにより、このように定義された関数が周囲の用語をいじることはできませんが、ホストの残りの部分はモジュールはそれらを通常どおり使用できます。おそらくこれは良い考えではありませんが、冗談を言ってください。なぜそれが不可能なのかわかりません。

次の最小限のコード例を 2 つのファイルにまとめました。

tinylang.rkt:

tinyimp.rkt:

ドキュメントで解決するのは些細なことだと思う質問をこのサイトにスパム送信することに罪悪感を覚えますが、どの段階で何が起こるかはまだ明確ではありません. 誰かが良いリソース (本、講義、論文) を知っていれば、それについて聞いて本当にうれしいです. Racket のドキュメントは非常に広範囲に渡っていますが、そこにある説明の重要な詳細を見逃してしまうことがよくあります。

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

haskell - 型制約による Haskell 拡張パターン マッチング

パターン マッチングに型制約を設定できる拡張機能を知っている人はいますか? 例えば:

注:入力タイプに基づいて異なる反応をするモナドを作成できるように、これを求めています。具体的には、確率モナドを作ろうとしていたのですが、重複を結合できるように、入力の型が等価かどうかを確認したいと思います。

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

javascript - JavaScript 言語を拡張して新しい演算子をサポートするにはどうすればよいですか?

JavaScript でカスタム演算子を作成することは可能ですか? という質問に対する答えです。はまだですが、 @Benjamin は、サードパーティのツールを使用して新しいオペレーターを追加できる可能性があることを示唆しています。

sweet.js などのサードパーティ ツールを使用してカスタム オペレータを追加することは可能ですが、追加のコンパイル手順が必要になります。

前の質問と同じ例を取り上げます。

(ℝ, ∘), x ∘ y = x + 2y

任意の 2 つの実数xyの場合: x ∘ yx + 2yであり、これも実数です。この演算子を拡張 JavaScript 言語に追加するにはどうすればよいですか?

次のコードが実行された後:

出力には次が含まれます

8だから2 + 2 * 3


JavaScript 言語を拡張して新しい演算子をサポートするにはどうすればよいですか?

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

c++ - make cppcheck は PACKAGE 定義をスキップします

C++-Builde-6 コードの静的コード分析に cppcheck 1.64 の GUI バージョンを使用しています。DLL のエクスポートとインポートの場合、次の定義PACKAGEが必要です。

Cppcheck は、それPACKAGEが何を意味するのかわからないため、遭遇すると停止します。

コード「class PACKAGE TAppInfoDialog {」は処理されません。-I または --include を使用して、このコードの処理を追加できます。

...そしてもちろん、これはクラス全体がチェックされていないことを意味します。cppcheckに単にPACKAGE「キーワード」を無視させることができれば、まったく正しいことを行うことができますが、どのように行うのでしょうか? インクルードパスを介して元の定義を含めることはオプションではないようです.cppcheckは、変更できないVCLフレームワークのヘッダーについて多くのことを教えてくれます...

マニュアルにはそれを行うためのオプションが記載されていません.Googleは助けません.SOにはまだ答えがありません.

cppcheck イシュー トラッカーで、類似の問題#4707 (クラスの Microsoft 'abstract' および 'sealed' 拡張) – cppcheck を見つけました。ここで主任開発者は、ファイルを作成して (事前に?) cppcheck の実行に含めることを提案していますが、私は GUI バージョンを使用しており、単一のファイルを含めるオプションはありません。そこで、プロジェクト オプション (XML ファイル) のインクルード セクションにディレクターを追加しようとしました。次に、対応する行をファイル仕様に編集しましたが、このセクションにはインクルード パスが含まれているため、明らかに意味がありません。

次に何を試すことができますか?

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

haskell - OverloadedLists 拡張機能が機能しない

GHC 7.8 の OverloadedLists 言語プラグマは非常に魅力的であるため、試してみることにしました。

そして、コンパイラは私に与えます:

リリース ノートの例でさえ機能しません。

ここで何が起こっているか知っている人はいますか?

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

c++ - MSVC 直接コンストラクター呼び出し拡張

この応答で、tlovelessは、MSVCthis->foo::foo(42); でコンストラクター委任を使用してコンストラクターを直接呼び出すことが可能であることを指摘しました。

これが MSVC でもコンパイルできることに驚きました。clang ++、g ++、および私は、それが違法であることに同意します。たとえば、[class.ctor]/2「コンストラクターには名前がないため、名前の検索中に見つかりません」

ただし、MSVC は、MSVC12 Update 1 (2013) および MSVC10 SP1 (2010) の/Wall言語拡張機能の有無にかかわらず警告を発しません。/Za

出力は次のとおりです。

両方のバージョンで。したがって、一時的に作成されるものはありませんが、コンストラクターが呼び出されます。

質問:

  1. この拡張子の名前は何ですか?
  2. 延長とみなされませんか?(/Zaそして拡張機能のリストはそうではないようです)
  3. この機能の / 公式の説明に関するドキュメントはありますか?

(この機能を強く思い出させるので、この質問に [delegating-constructors] タグを付けました)


メタ情報: この機能はある程度知られているため、この質問は重複しているとほぼ確信しています。たとえば、「同様の質問」に対するこの回答を参照してください。この機能を説明する回答が見つかった場合は、これを dup として閉じることを躊躇しないでください。