問題タブ [vinyl]

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 に答える
214 参照

haskell - Vinyl: レコード タイプのエイリアスを作成する

Vinyl では、レコードのタイプ エイリアスを定義して、他のモジュールへのエクスポートを容易にすることができます。

ここで、高さを格納する別のフィールドを追加するとします。

と を含むレコードの型エイリアスをうまく構築したいと思いPersonますheight。単純に、それは次のようになります。

この構文は明らかに機能しません。これを行う方法はありますか?ここで使用されていると思われる型レベルの配列構文を説明する参考文献はありますか?

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

haskell - ヴァイナルの ISubset の問題

次のコードがあります。

タイプを取り除くと、drawObject問題なくコンパイルされますが、タイプを取得すると

GHCが私のために推測するタイプは

そして、それは型シグネチャとしてうまく機能しますが、 を持つものはそうでISubsetはありません。引数を に交換しても、エラーはまったく同じですISubset。ここで何が起こっているのですか?

0 投票する
0 に答える
156 参照

haskell - ビニール レコードを種類別に絞り込む

ビニール ライブラリを使用して、レコードのセットをタイプまたはその他のプロパティで除外する方法はありますか? シェーダー ユニフォームの値をオブジェクトの他のプロパティと混合し、後でそれらを抽出して呼び出すことができるようにしたいと考えていますGraphics.VinylGL.Uniforms.setAllUniformsHListIMO ビニールの方が優れているので、使用したくありません。

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

haskell - プロキシ、タイプ レベル シンボル、および JSON

自動 json 解析を Data.Vinyl に追加しようとしています

以下は、要素が 1 つだけのレコードの FromJSON のインスタンスです。

ほとんど機能しますが、KnownSymbol 制約を満たすことができません。新しい型変数が自動生成されるようです。

エラーは

詳細なコンテキストhttp://lpaste.net/101005

のすべてのインスタンスを に置き換えるsym"name"、機能し、実行され、素晴らしいものになります。ここで、テンプレート Haskell を使用して事前にすべてのインスタンスを生成することができました。これは、実際に使用するフィールド名のクローズド リストがあるためですが、それは非常に残念なことのように思えます。Data.Proxy のレコードの show インスタンスを定義するために使用されているのを見たばかりなので、Data.Proxy についてほとんど何も知りません。

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

haskell - 特定のフィールドを持つ Vinyl レコードに適用される制約を宣言する

私はvinylを使用して、いくつかの異なるレコード タイプを宣言しています。その中にContentは、特定のタイプで呼び出されるフィールドがあるものもありますLanguageContent。レコードに存在するフィールドに依存する関数については、次のような型が必要です。

(説明のためだけに与えられた関数。何かを取得し、それを使用してさまざまなことを行う多くの関数がありますHasContent。)

HasContentここで、制約として宣言する必要があります。私が使用できる最も近いData.Vinyl.Notationものは次のとおりです。

型ファミリは宣言できますが、関数は型チェックを行いません:

機能するが理想的ではない2つのパラメーターを使用して制約を作成できます(rsは、どこでも繰り返す必要があるパラメーターです)。

追加のパラメーターがなければ (@ChristianConkle の回答を参照)、次のようになります。

Rec Attr fsそのようなものだけに当てはまる制約を宣言するにはどうすればよいContent ∈ fsですか?

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

haskell - Vinyl: すべてのフィールドで共有される制約を必要とする関数を含む rtraverse

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

haskell - 伴意によるビニールの RecAll 制約の弱体化

ヴァイナルライブラリには型RecAllファミリがあります。型レベル リストのすべての型に対して、部分的に適用された制約が真であることを確認してみましょう。たとえば、次のように記述できます。

そして、それはすべて素敵です。ここで、が不明な制約RecAll f rs cがあり、(ekmett のcontstraintsパッケージから言葉を借りるために)含意を知っている場合、どうすれば を取得できますか?cc xd xRecAll f rs d

私が尋ねる理由は、いくつかの型クラスの制約を満たす必要があるいくつかの関数でレコードを扱っているからです。これを行うために、 existsパッケージのControl.Constraints.Combineモジュールの:&:コンビネーターを使用しています。(注: の非常に古いバージョンに依存しているため、他のものがインストールされている場合、パッケージはビルドされません。ただし、言及した 1 つのモジュールをコピーするだけでかまいません。) これにより、最小化しながら、いくつかの本当に美しい制約を取得できますタイプクラスのブロイラープレート。例えば:contravariant

しかし、この関数の本体内で、より弱い制約を要求する別の関数を呼び出します。次のようになります。

GHC は、2 番目のステートメントが最初のステートメントから続くことを認識できません。そうなのだろうと思いました。私が見ることができないのは、それを具体化して GHC を助けるためにそれを証明する方法です。これまでのところ、私はこれを持っています:

これらは正常に動作します。しかし、これは私が立ち往生しているところです:

これはコンパイルされません。私が探している効果を得る方法を知っている人はいますか。エラーが参考になる場合は、ここにエラーがあります。また、私はDict実際のコードに修飾されたインポートを持っているので、それが言及されている理由Constraint.Dictです: