問題タブ [shapeless]

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

scala - HList を List[Type]、List[TypeTag]、または List[String] にマップする方法

Scala REPL とその bind メソッドをいじっています。残念ながら、型の一部の型情報を消去する ClassTag が必要List[Int]ですList[_]。したがって、HList を REPL ラッパーに渡し、バインド メソッドに渡すことができる文字列として型を取得したいと考えています。このために、HList を文字列のリストにマップする必要があります。

上記のコードは機能しません。1 つには、Tuple2 を使用できません。それを解決するのはそれほど難しくないはずです。ただし、typeOf[T] には暗黙の TypeTag が必要です。どうすればこれを行うことができますか?助けてもらえshowますか?

助けてくれてありがとう。

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

scala - scala-js への形状のないポート: 外部依存関係がほとんどないアーティファクトを作成する

scala-js への shapeless ライブラリの移植があります ( https://github.com/alexander-myltsev/shapeless )。元のシェイプレスへの依存関係を減らして、アーティファクトを適切に公開する必要があります。

ここで、Miles Sabin のリポジトリをフォークし、scala-js ライブラリを生成するために必要な変更を追加しました: scalajs-sbt-plugin を追加し、build.scala を調整し、bintray-sbt-plugin を追加します。

scala-js がビルドを壊す可能性があるため、形状のないメンテナーに私のブランチをマージするように依頼するのは間違っています。

一方、元のレポへの依存関係も最小限にしたいと思います。理論的かつ理想的には、たとえば shapeless-scalajs sbt-project をゼロから作成したいと考えています。それから何とか元の形のないライブラリを参照してください。次に、必要なオーバーライドを使用して shapeless-build-scala から派生させて、scala-js に対してビルドし、bintray に公開します。

私は全能の sbt を信じています :) このタスクを解決するためのオプションは何ですか?

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

scala - スプレー プロジェクトでの Scala コンパイラの奇妙な出力

スプレーを使用する Scala/Java Maven プロジェクトが混在しています。Maven と scala-maven-plugin でコンパイルします。Scala 2.10.4 を使用しています。Maven は、Spray の依存関係である Shapeless に関する多くの無意味な情報を出力します。

これは多くのノイズを生成し、私には意味がありません。

このメッセージの目的は何ですか?

これらは、Scala コンパイラの内部デバッグ出力のように見えます。

削除できますか?.

アップデート:

これが私のpomの抜粋です:

Shapeless は、推移的な依存関係として自動的にもたらされます。

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

scala - [String,Object] を DB (または Key-Value ストア) から Shapeless Extensible Record にマップする

[String,Object] を DB (または Key-Value ストア) から Shapeless Extensible Record にマップする

例:

地図があるとしましょう

フィールド「名前」は文字列で、フィールド「年齢」は整数である必要があることを知っている場合、それを次のように形状のない拡張可能レコードに変換するにはどうすればよいですか?

私の最終目標は、フィールドを使用して関数「fromDB」を使用してマップを変換できる以下のようなオブジェクトを作成することです。

私は他の提案やこれを行う方法も受け入れています。ありがとう。

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

scala - Scala では型が等しくないという証拠

2 つの型が等しくないことが証明された場合にのみ意味をなすように、メソッドを制約する方法はありますか?

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

scala - シングルトン型の構成要素への統一を解体する

私はシングルトン型で遊んでいます.Miles Sabinのコードスニペットの1つに基づいて、これを持っています:

ここまでは順調ですが、次の式があるとします。

式の型を見ると、K と V はそれぞれ String("s") を持つ String("q") と String を持つ Int に統一されているようです

そのようなことは理にかなっていますが、私の質問は、このタイプをその構成要素、つまり上記の r と s のタイプに「非統一化」または強制することが可能かどうかです。

タプルに変換すると、次のようになります。

純粋に型レベルで何かを探しています。統一された型を分解するメカニズムがある可能性はありますか?

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

scala - HList を HList の HList に変換する

次のスニペットのように、HList を HList の HList に変換するにはどうすればよいですか。

どういうわけか入力をマッピングし、最終的にどのような出力になるメソッドを介してOutput与えられたものを構築したいと思います。Inputmagicbuild

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

scala - 形状のないレコードを列挙し、実行時にフィールド キーにアクセスする方法は?

ケース クラス インスタンスのリストを処理し、各フィールドの値を収集し、結合してからライブラリに渡すための汎用コードを作成しています。

シェイプレス関数とポリモーフィック関数を使用するLabelledGenericと、次のようになります。

ただし、field.keyライブラリにはパラメーター名が必要なため、取得する方法が必要です。

解決策を提案していただけませんか?

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

scala - 関数の HList を介して特定の型から特定の型に関数をマップする方法は?

HList簡単にするために、インスタンスが正確に 2 つの値を保持していると仮定します。

今、私はいくつかHlistのintを持って、これを行うことができるようにしたいと思います:

取得するため

これからは、自分が何をしているのかわからないと仮定し、関数の神々の前で自分の卑劣さを完全に理解している.

私はすでに shapeless の wiki を見てきましたが、私が理解している限りでは、shapeless で受け入れられるInttoから関数を作成する必要があります。T私は正しく理解しましたか?これが私が得たものです:

この時点で、私は完全に道に迷っており、先に進む方法さえわかりません。でも、これがもたらす潜在的な力と表現力にちょっと魅了されているので、この機能がどのように機能するかを本当に理解したいと思っています. あなたの答えが単なるコードスニペットではなく、よりオープンで説明的なものになることを本当に感謝しています.

c++PS SO のエンジンがタグを提案してくれました。私は何か C++ っぽいことを言いましたか?

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

scala - 証明が空の型 (つまり false) であるとどのように言いますか?

Nat をパラメーターとして取り、この nat が 3 で割り切れない場合にのみこの nat を返す関数を作成したいと考えています。

例えば ​​:

そのためには、「N は _3 で割り切れない」、または「Mod.Aux[N, _3,_0] は空の型です」と書かなければなりません。

shapeless でそれを行うにはどうすればよいですか?