問題タブ [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 - 型レベル Shapeless : HList 型要素の集約
この Monad で HList を折りたたみたいが、型レベルで
したがって、HList : "A :: B:: C :: HNil " は型 " A with B with C with Any" を与えるでしょう。
HList を実装していれば、非常に簡単に実行できます。
ただし、形状のない環境でこの機能を使用する方法がわかりません
私のユースケースは次のとおりです。
有効なパラメーターを制約することにより、暗黙的なクラスの使用を特定のクラスに制限する必要があります。例:
たとえば、私が持っている場合
MC は、IC2 または IC5 ではなく、暗黙のクラス IC1 または IC3 または IC4 によって解析される必要があります
--
T パラメータを動的に定義するために、「フィルタ」で構成される HList を使用します。必要な HList が作成されたら、HList コンポーネントを集約して、暗黙的なクラスの解析可能なフィルターを生成する必要があります。
だから私は例えば必要です:
に変換されます
scala - Shapeless を使用した Scala での構造的プログラミング: SYB 実装を正しく使用するには?
ShapelessライブラリのSYB実装を使用して、次の汎用トラバーサル関数を記述したいと考えています。
残念ながら、このコードは次の型エラーを生成します (Shapeless 2.0.0-M1 および Scala 2.10.2 を使用):
B
Shapeless ライブラリの暗黙的なマクロを適用できるようにするには、型パラメーターを何らかの方法で制約する必要があると思いますが、その方法がわかりません。
このようなトラバーサル関数は、Shapeless を使用して記述できますか?
scala - Scala コンパイル中のメモリ不足エラー
私はマクロを多用したscala-pickling
を とともに使用shapeless
していますが、明らかなメモリ不足エラーで Scala 2.10.3 コンパイラをクラッシュさせ続けています。エラー メッセージの末尾は次のようになります。
私はシステムメモリを監視していますが、十分にあるので、これが実際にメモリ割り当ての問題である場合は、問題を解決するためにどこかに設定できる JVM フラグがあると思います。
ただし、paulp の sbtスクリプトのヒープ設定を に調整して、使用可能なメモリを増やしてみましたが、それでもこのエラーが発生します。これは正しいフラグですか?-Xmx8g
アイデア?
編集:「scala-pickling」および「shapeless」タグを追加しました。これは、これらのライブラリの他のユーザーが遭遇した可能性があるためです。
scala - scalaの型レベルで型の等価性をテストする方法は?
型レベルのプログラミングをしたいと思っています。Scala タイプのマクロは死んでいて、shapeless は私のやりたいことができないようです。次のコードを動作させることができれば、私の問題はすべて解決されます (このコードはhttp://apocalisp.wordpress.com/2010/06/08/type-level-programming-in-scala/およびhttp: //michid.wordpress.com/2010/06/18/type-level-programming-equality/ ) 「型削除」演算子を持つ HList の実装を示しています。このバグは、2 つの型が等しいかどうかをテストして除去するかどうかをテストする「EQ」構造に由来します。私の場合、常にfalseを返すようです。「エイリアス」(?) を使用しているからだと思いますが、この難しさを克服する方法がわかりません。
scala - Shapelessで構造プログラミングを使用してScalaで汎用の「置換」関数を定義する方法は?
これは、 Shapelessライブラリの SYB 実装を使用して Scala でジェネリック トランスフォーマーを実装する方法に関するフォローアップの質問です。
everywhere
Shapeless で定義されたコンビネータを使用して、Scala で汎用の「置換」関数を定義したいと考えています。
この関数は、指定された式内のすべての出現箇所をx
withで置き換える必要があります。残念ながら、この機能は思い通りに動作しません。値への適用y
expr
genericReplace
tree
指定された値をまったく変更しません。
この例を機能させる方法はありますか? everywhere
コードで Shapeless コンビネータを正しく使用するにはどうすればよいですか?