問題タブ [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.
haskell - オーバーロードされた文字列の使用
OverloadedStrings
拡張機能は非常に便利ですが、いくつかの欠点があります。次の関数定義を検討してください。
この場合、リテラル値を渡したい場合OverloadedStrings
は、有効になっているときに型シグネチャを明示的に追加する必要があります。
この必要性の理由は非常に明白です。OverloadedStrings
厳密な型シグネチャを持つ関数にリテラル値を簡単に渡せるように設計されていると思います。これにより、開発者は値が必要なpack
場所に sを書く必要がなくなります。Text
問題は、たとえば、型シグネチャのないすべての文字列リテラルをText
、または? にデフォルト設定する方法はありますかString
? または、コードを一般的な関数 (ToJSString
型制約付き) と、引数に厳密な型シグネチャを持つ任意の関数に分割する必要がありますか?
python - Python の上でドメイン固有言語を解析するには? IPython のアーキテクチャは?
ドメイン固有言語を Python のスーパーセットとして構築したいと考えています。次のような不可解なコマンド
タイピングを最小限に抑えるように設計されたものは、プレーンな Python に解析されます。
実行される前に。おそらく、コマンドライン インターフェイスは IPython になるでしょう。
適切なアーキテクチャは何でしょうか: IPython コマンドライン シェルまたはそのカーネル デーモンで暗号からプレーンへの Python 変換を実装する必要がありますか? 役立つライブラリ / チュートリアル / サンプルはありますか?
またはより一般的に: Python に複雑な構文糖衣を追加する方法の例はありますか?
c++ - 「this」パラメーターのアドレス空間修飾子ごとのメソッドのオーバーロード
clang++ を使用する C++ では、暗黙の 'this' パラメータのアドレス空間修飾子に従ってメソッドをオーバーロードできますか? もしそうなら、構文は何ですか?
このソースは、アドレス空間修飾子をパラメーター リストの後、中括弧の前に配置できることを示唆しています ( 'this' で const 修飾子を使用する場合と同様)。次のことを試しましたが、失敗しました; clang は、「this」ではなく、メソッドのアドレス空間を設定しようとしていると考えています。
私が見つけた最も近いものは、clang を使用すると、明示的な仮パラメーター ( 'this' ではない)のアドレス空間に従ってメソッドをオーバーロードできることです。たとえば、以下のコードは「1\n2\n」を出力します。
haskell - Haskell プラグマ: OPTIONS_GHC と LANGUAGE
私は自分のカバール プロジェクトでこの種のプラグマを頻繁に使用して、特定のオプションで GHC を強制的にビルドすることに気付きました。
しかし、他の人が拡張機能を使用しているのを見ると、常に次のように宣言しています。
しかし、後者の方法を使用する GHCi にファイルをロードすると、GHC は常に を使用していると不平を言いunrecognised pragma
、すぐに失敗します。
LANGUAGE
GHC がプラグマを受け入れないのはなぜですか? 2 つのうちどちらがより適切な方法ですか?
注: GHC のバージョンは最新の 7.8.3 ですが、これが発生したときは 7.6.* でした。
c++ - pimpl を未然に防ぐために C++ 言語を拡張する提案はありますか?
場合によっては、単に不透明な前方宣言ではなく、公開された機能を公開したクラス宣言を提供したいことがありますが、プライベートまたは実装固有のフィールドとメソッドにコミットしたくない場合があります。これに対する 1 つの解決策は、pimpl イディオムです。内部クラスへのポインターを使用して、公開されているクラスの実装を格納します。
私は pimpl を使用するのが本当に好きではなく、言語が本当にプライベートなメンバーを持つことを許可することを望みます-クラスを使用するコードがそれらの宣言を「見ない」ようにします(したがって、実装の詳細時に再コンパイルする必要はおそらくありません)変化する)。また、最近、C++ の進化の速度が大幅に速くなっていることに気付きました。これは、標準的な更新では 3 年間のカチカチというパターンです。それで...そのような機能をC++に追加する提案はありますか? 一部のコンパイラは現在それをサポートしていますか?
c++ - C++1z コルーチンは言語機能ですか?
コルーチン (現時点では C++1z の最新のドラフト) が、ライブラリ拡張ではなくコア言語機能 (派手なキーワードなど) として実装されるのはなぜですか?
私が読んだことから、それらのいくつかの実装(Boost.Coroutineなど)がすでに存在し、そのうちのいくつかはプラットフォームに依存しないようにすることができます。なぜ委員会はそれをコア言語自体に組み込むことにしたのですか?
すべきではないと言っているわけではありませんが、Bjarne Stroustrup 自身がいくつかの講演で (もうどれかはわかりません)、新機能はコア言語に触れるのではなく、可能な限りライブラリに実装する必要があると述べています。
そうする正当な理由はありますか?利点は何ですか?
c - Cに左辺がない場合、&&演算子は何をしますか?
次のようなコードを持つ C のプログラムを見ました。
&&
左側には何もないので、 が何をするのか混乱しています。デフォルトで null として評価されますか? それともこれは特殊なケースですか?
編集:私の質問の質問/コードをより明確にするために、さらに情報を追加しました。助けてくれてありがとう。これは、gcc 固有の拡張の場合です。
javascript - QML からインポートされた JS リソースでサポートされている構文は何ですか?
以前は、QML から JS リソースをインポートする場合、この JS ファイルには標準の JS コードのみを含めることができると考えていました。次に、2 つの例外に遭遇しました。
.import
声明_- コード ビハインド ファイル
property
でのみ使用されているようで、明らかに JS をインポートする QML コンポーネントにプロパティを追加するキーワード(JS 内)
QML からインポートした場合、標準の JS と比較して、JS には他にどのような「拡張機能」がありますか?
そして、これら 2 つと、JS 言語のその他の拡張機能について、完全に説明してほしいと思います。たとえば、グローバル JS 変数を宣言する場合、property
キーワードを使用する場合と使用しない場合の違いは何ですか?
haskell - Haskell で TypeApplications をどのように使用しますか?
GHC 8.0では、関数の引数の前-XTypeApplications
に型を明示的に指定できます。特にいくつかが導入され@
た場合、どのタイプを正確に指定しますか?@
haskell - マルチパラメータ型による拡張機能の導出
識別子の型によってパラメーター化された Ast 型のコンストラクターがあります。DeriveFunctor、DeriveFoldable、および DeriveTraversable 拡張機能を使用すると、適切なインスタンスを自動的に作成できます。
より多くの型パラメーターを導入すると便利だと思いますが、残念ながら上記の方法はスケーリングしません。理想的には、Ast 型を選択型でラップして、適切な型パラメーターに fmap できるようにしたいと考えています。インスタンスを自分で定義せずに同様の効果を達成する方法はありますか?
編集:
元の Ast の外観の小さな例を次に示します。