問題タブ [deriving]
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 - DataKinds 派生型の Typeable インスタンスを自動的に派生させるにはどうすればよいですか?
私はこのようないくつかのタイプを持っていました:
typeOf
そして、私はこの関数でそれらを使用したかった:
findRateの型a
にインスタンスがなかったため、これは機能しませんでしたTypeable
。だから私はこれを行うことでそれを修正しました:
ただし、通貨の数が増えると、それは多くのボイラープレートになります。すべての種類の種類がインスタンスCurrency
を派生させるように指定する方法はありますか?Typeable
編集:また、それを推論させる方法がいいので、どこにでも追加する必要はありませMoney a
ん。それはマイナーですが。a
Typeable
(Typeable a) =>
haskell - 列挙型のカスタム派生 (読み取り、表示)
この列挙型があるとしましょう:
Read
とShow
のインスタンスを次の動作で定義したいと思います。
これらの定義には多くの繰り返しがあるため、各型コンストラクターを文字列に関連付けてから、それらの関連付けから自動的に生成Show
したいと考えています。Read
そのようなことは可能ですか?
rust - 数値型の Add、Mul、Ord などを自動的に導出
数値のように動作するカスタム型を作成する最も簡単な方法は?
プログラムで異なるユニットが混在するのを防ぐ型チェックが必要ですが、キャストを行ったり来たりせずに型の計算を簡単に実行できるようにしたいと考えています (カスタムCentimeters
とInches
型の場合と同様)。
私が作成した場合:
Add
次に、 、Mul
、Ord
および他の多くの特性を手動で実装する必要があります。これは多くの定型文であり、このコードをコピーして貼り付けると、プログラムの基本的な算術演算が壊れるリスクが生じます:)
残念ながら#[derive(Add, Sub, …)]
対応していないようです。同様の効果を達成できる別の標準的な特性/タイプ/クレートはありますか?