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)
{{#tags}}- {{label}}
{{/tags}}