問題タブ [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.
scala - scala - HList の一般的な解凍
次のScalaの問題があります。
HList のリストを取得する関数を作成する
リストの HList を返します
これは、一般的な unzipN のようなものです。任意の HList はまったく可能ですか?
ありがとうございました。
scala - shapeless replacer の定義
Shapeless ライブラリを使用してこの Scala コードをコンパイルできるように修正するにはどうすればよいでしょうか。
次のエラー メッセージが表示されます。
行方不明の Implicit を作成する解決策を見つけるために、形のないソースコードを調べてみましたが、役に立ちReplacer
ませんでした:/
scala - Shapeless ライブラリの目的を説明してもらえますか?
Shapeless ライブラリの目的を簡単に説明してもらえますか?
Scala にはジェネリックと継承機能があるため、Shapeless の目的が少しわかりません。
物事を明確にするためのユースケースが役立つかもしれません。
scala - 形のない HList の内容に対する型推論
この例は単純化されています。
私はこのようなクラスのセットを持っています:
次のコードでは、型が正しく推論されます。
次の型を正しく推測する方法がわかりません。
KeyType
の内容に基づいて を推測できる方法はありHList
ますか?
scala - 共通の特性を拡張する形状のない HList 型
形状のない HList に基づく型がいくつかあります。
ST
次の機能がある場合、それらすべてのスーパータイプである封印された特性を定義したいと思います。
以下が有効です。
しかし、以下はコンパイルされません:
t1
とt2
を のサブタイプとして定義するにはどうすればよいST
ですか?
アップデート
Coproducts が解決策になると思います
list - Shapeless から Sized に safeGet メソッドを追加
Sized に safeGet メソッドを追加することに着手したのは、私が取り組んでいる一部のクライアント コードに最適だと感じたからです。
私の場合は機能しますが、一般的な場合では機能しないひどいハックで機能させることができました。
メソッドのシグネチャと定義は次のとおりです。
ただし、Traversable は apply メソッドを定義していないため、これが機能するために実行する必要がある追加のハックがいくつかあります。完全な(小さな)差分は次のとおりです。
より適切な方法で同じ結果を得る方法を知っている人はいますか?
これを正しく行うには、標準ライブラリに IsGenSeqLike が必要だと思います。次に、Traversable をそのままにして、Seq でのみ safeGet を定義することができます。