問題タブ [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 - Haskell での ViewPatterns と複数の呼び出し
私はこれを読みました:
http://hackage.haskell.org/trac/ghc/wiki/ViewPatterns
私はアイデアが好きです、拡張機能を使いたいです。ただし、1 つのことを確認したいと思います: ビュー関数が 1 回の一致に対して 1 回評価されるかどうかです。
だから、私たちが持っているとしましょう:
を呼び出すとしましょうf a
。view
指定された引数に対して 2 回呼び出されるか、1 回だけ呼び出されますa
か?
編集:
私はこれが事実であるかどうかを調べようとし、次のように書きました:
GHC を使用した出力:
GHC を使用した出力 (最適化あり)
GHCi を使用した出力:
haskell - cabalized プロジェクトで拡張機能を指定するための規則
任意の .hs ファイルについて、依存する言語拡張を次のように指定できます。
cabal 化されたプロジェクトは、.cabal ファイルでプロジェクトごとに言語拡張を指定することもできます。
これらのうち、「ベスト プラクティス」と見なされるのはどれですか? パッケージがどのコンパイラと互換性があるかを文書化する形式として、使用されているすべての拡張子を .cabal ファイルにリストする必要がありますか? それとも、どのファイルがどの拡張子に依存しているかを明確にするために、すべての拡張子をファイルごとに記録する必要がありますか? 両方の場所で広範囲に文書化するのはどうですか? それとも、ベストプラクティスはその中間ですか?
haskell - -XImplicitParams がプラグマではなく、コマンド ラインからのみ機能するのはなぜですか?
-XImplicitParams
OPTIONS_GHC プラグマでは機能しないのに、コマンド ラインからは機能するのはなぜですか?
次のコードが含まれている場合にghc t.hs
スローされることがわかりましたが、正常に動作します。同上。 parse error on input 'a'
t.hs
ghc -XImplicitParams t.hs
ghci
haskell - ユーザーはどの Haskell (GHC) 拡張機能を使用/回避する必要がありますか?
GHC に拡張機能を使用するように指示された経験が数回ありますが、その拡張機能を使用するとコードがはるかに複雑になり、単純なリファクタリングで Haskell 98 (現在は2010 )、より簡単な解決策があります。
一方、GADT や Rank2Types (RankNTypes はめったにありません) を使用すると、作業が大幅に減り、コードがよりクリーンになる場合もあります。
一般に、より良い設計の可能性を曖昧にする傾向があるのはどの拡張機能で、一般的にそれを改善するのはどれですか? 両方を行うものがある場合、その拡張機能を使用することを決定する前に、ユーザーは何を探す必要がありますか (意図しているソリューションに当てはまるかどうかを確認します)。
( GHC Haskell 拡張機能を使用する必要があるかどうかも参照してください。 )
haskell - GHCi内から言語拡張を有効にするにはどうすればよいですか?
XRankNTypes
GHCiで有効にしようとしています。どうすればよいですか?
security - GeneralizedNewtypeDeriving なしで Data.Set の整合性を破る
以下のコードは、安全でないGeneralizedNewtypeDeriving
拡張機能を使用して、異なるインスタンスData.Set
を持つ異なる要素を挿入することで中断しています。Ord
コードが出力され[1,3,5,7,8,6,9,6,4,2,0,9]
ます。リストは順不同で、9
2 回あることに注意してください。
他の拡張機能を使用してこの辞書スワッピング攻撃を実行することは可能ConstraintKinds
ですか? はいの場合、Data.Set
そのような攻撃に耐えられるように再設計できますか?
c++ - 言語拡張機能をオフにしてWindowsとDirectXコードを作成することは可能ですか?
プロジェクトで拡張機能をオフにしていますが、directxまたはwindowsヘッダーを含むすべてのcppファイルで拡張機能をオンにする必要があります。
これらのcppファイルの拡張機能をオフにすると、コンパイルされません。これを機能させる方法はありますか?
言語拡張機能を使用すると、正常にコンパイルされます。
VS2012 Express、C ++、DirectX9、およびWin764を使用しています。
エラーの例
haskell - UndecidableInstances プラグマをローカルで使用すると、コンパイルの終了時にグローバルな結果が生じる可能性がありますか?
Haskell ライブラリの設計者がUndecidableInstances
何らかの理由で使用することにしたとします。ライブラリは正常にコンパイルされます。ここで、一部のプログラムがライブラリを使用する (型クラスのいくつかのインスタンスを定義するなど) が、拡張機能を使用しないとします。コンパイルが失敗する (終了しない) 可能性はありますか?
そのようなシナリオが発生する可能性がある場合は、例を見ていただければ幸いです。たとえば、mtlは多くのことを使用するため、 mtl (または拡張機能を使用する他の標準ライブラリ) にUndecidableInstances
依存し、それ自体を使用せず、決定不能のためにコンパイルに失敗するプログラムを作成することは可能ですか?UndecidableInstances
javascript - 括弧のない関数呼び出しを使用した JavaScript 言語拡張 - 可能ですか?
どうしても、次のようなことをすることは可能ですか:
重要な部分は次の行です。
haskell - MTLライブラリにはどの言語拡張が必要ですか?
私は、既存のライブラリの設計に基づいて独自の小さなライブラリを実装することにより、モナド変換子を理解しようとしています。
私が立ち往生しているのは言語拡張です。MonadErrorでは、言及されている拡張子は。だけですUndecidableInstances
。FunctionalDependencies
ただし、とを使用しないと、同様のコードをコンパイルすることはできませんFlexibleInstances
。
FunDepsが必要だと私が信じる例:
そして柔軟なインスタンス:
コードはどのようにしMonadError
て余分な2つの拡張を回避しますか?