// å²ã2ãããé¢æ°ã®å¼æ°ãå¶æ°ã§ãããã¨ãåã«ãã£ã¦å¼·å¶ããä¾ï¼å®ç¨æ§ã¯ãªãï¼ data O // æ°åã®0ã表ããã¼ã¿å data S(A) forall { A } // +1ã表ããã¼ã¿å // åã¨ã¤ãªã¢ã¹ type Nat = O | S[Nat] // éå¹çãããä»åé·æ´æ° type Even = O | S[Odd] type Odd = S[Even] // å¶æ°ãå¼æ°ã«ã¨ã£ã¦2ã§å²ã£ãçµæãè¨èªçµè¾¼ã¿ã®æ´æ°ã¨ãã¦è¿ãé¢æ° div2 : Even -> I64 = // ç¶²ç¾ æ§ãã§ãã¯ã¤ãã®ãã¿ã¼ã³ããã | O => 0 | S(S(n)) => 1 + n.div2 TL;DR ã¦ããªã³åã¯ç´ååã®ä¸ä½äºæã§ããï¼è¿½è¨ããï¼ãé¢æ°åè¨èªãä½ãã¨ãã¯ç´ååã®ä»£ããã«ã¦ããªã³åãæ¡ç¨ããã®ãããã ã¯ããã« Cottonã¨ããããã°ã©ãã³ã°è¨èªã2021å¹´ã®å¤é ããä½

{{#tags}}- {{label}}
{{/tags}}