タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

gatdに関するyharaのブックマーク (1)

  • TypeScript で GADT っぽいの - Object.create(null)

    TypeScript で Haskell にあるような GADT (Generalized Algebraic Data Type) っぽいものをどう表現できるかという話. GADT を使いたくなる例 式をデータとして表現したいことありますよね. あると言ってくれ. 例えば数値と数値上の関数, そして関数適用がある式を考えます. 素朴に表現すると以下のようになるでしょう. type Expr = | { type: "num", val: number } | { type: "fun", val: Fun } | { type: "app", fun: Expr, arg: Expr }; type Fun = (x: number) => number; いちいちオブジェクトリテラルを書くのは面倒なのでコンストラクタを作っておきます. const num = (val: number)

    TypeScript で GADT っぽいの - Object.create(null)
    yhara
    yhara 2021/02/11
  • 1