問題タブ [scrap-your-boilerplate]
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 - TypeRepと「Type」GADTの関係
「リロードされたボイラープレートのスクラップ」では、著者は、オリジナルと同等であると思われる「ボイラープレートのスクラップ」の新しいプレゼンテーションについて説明しています。
ただし、1つの違いは、GADTでエンコードされた「ベース」タイプの有限の閉集合を想定していることです。
元のSYBでは、型セーフキャストが使用され、Typeable
クラスを使用して実装されます。
私の質問は次のとおりです。
- これら2つのアプローチの関係は何ですか?
- 「SYBリローデッド」プレゼンテーションにGADT表現が選択されたのはなぜですか?
haskell - GHC Generics に対する SYB (ボイラープレートの破棄) の利点
GHC Generics と比較して、SYB でしかできないタスク、または SYB ではるかに簡単なタスクはありますか?
haskell - ボイラープレートなしで型「T a」から「T b」に変換する
したがって、「注釈」タイプによってパラメーター化された、多数のケースを持つ AST データ型があります。
私は注釈型S
とT
、そしていくつかの機能を持っていますf :: S -> T
。Expr 値内で発生するそれぞれの変換を使用してExpr S
、 を取得して に変換したいと考えています。Expr T
f
S
SYB またはジェネリックを使用してこれを行い、すべてのケースでパターン マッチを回避する方法はありますか? こういうのに向いているタイプのようです。私はSYBに精通していないため、具体的な方法を知ることができません。