Object-Oriented Conference 2024ã§çºè¡¨ããè³æã§ãã https://fortee.jp/oocon-2024/proposal/b31c9818-3cb8-4350-adfe-cbc839cdf829 ãã¸ãã¹ã®å°éç¥èï¼ãã¡ã¤ã³ï¼ãä¸å¿ã«æ®ãããã¡ã¤ã³é§åè¨è¨ã«â¦
ãã®ã¨ã³ããªã¯ ãã¯ã³ã´ Advent Calendar 2021 2æ¥ç®ã®è¨äºã§ã(å¤ãæããã¾ã§ã¯2æ¥ç®ï¼)ã ã¯ããã« TypeScriptã«ã¯ Conditional Types ã Template Literal Types ã¨ãã£ãã¯ãã½å¼·åãªåæ©è½ãããã¾ãã ããããç¨ãã¦ãä»å㯠2p3p4p2m3m4m2s3s4s4s5s6s8s8s ã®ãããªå¤©é³³çèå½¢å¼ã®æååãåå¼æ°ã«æ¸¡ãã¨ã麻éã®å½¹å¤å®ãããå(ããã¾ã§åã§ããé¢æ°ã§ã¯ããã¾ãã)ãä½ã£ã¦ã¿ããã¨ãããã¾ãã (ãã ãæéããªãã£ãããæä¹ä¹ã¨å¹³åã®ã¿ã§ã)ã Conditional Types, Template Literal Types ã£ã¦ä½ï¼ ããããå ·ä½çã«ã©ããªãã®ããããã¥ã¢ã«ã®ä¾ãç¨ãã¦ç¤ºãã¨ã以ä¸ã®ãããªæãã§ãã // Conditional Types ã®ä¾ interface Anim
ãã®è¨äºã¯ä»¥ä¸ã®ãã¼ã¸ã«ç§»è»¢ãã¾ããï¼ blog.ryota-ka.me ãçã«æ°æ¥ã®ä¼ã¿ããã£ãã®ã§ï¼Ludwig Wittgenstein ã®ãè«çå²å¦è«è (Tractatus Logico-Philosophicus)ããèªã¿å§ããï¼Wittgenstein ã®èä½ãèªãã§ããã¨ï¼å½¼ãçè«ãç¶æ¿ãï¼ã¾ãæ¹å¤ãã対象ã¨ãªã£ã Gottlob Frege ã Bertrand Russell ã®ææ³ã«ãåæã«è§¦ãããã¨ã«ãªãï¼ ãè«èãã®å½é¡ 3.3 以ä¸ã«ï¼Russell ã®ãã©ãã¯ã¹ã«å¯¾ãã解決çãæ示ãï¼Russell ã®ä¸»å¼µãåé§ããå ´é¢ãè¦ããããï¼ãã®è¨äºã§ã¯ãããï¼Russell èªèº«ã®åçã§ããéåçè« (theory of types) ã«ãã解決çã«ç®ãåãããï¼æã ãæ®æ®µããã°ã©ã ãè¨è¿°ããéã«è§¦ããåã®æ¦å¿µãå¦ä½ã«ãã¦çã¾ãï¼çºå±ãã¦ããã®ããè¦ã¦ãããã¨ã¨ãã
ãã¤ã¯ãã½ãããéçºä¸ã®F* ã¨ããä¾ååããã°ã©ãã³ã°è¨èªãå°ã触ã£ã¦ã¿ã¾ããã ãã®è¨èªã«ã¯å¼·åã§è¤éãªåã·ã¹ãã ãçµã¿è¾¼ã¾ãã¦ãã¾ãã ç¾ç¶ãä¾ååè¨èªã¯ä¸éã«ã¯ãã¾ãåºã¾ã£ã¦ãã¾ããã®ã§ F*ã¨ã¯ï¼ è¤éãªåã£ã¦ãªãã ããï¼ è¤éãªåã·ã¹ãã ãçµã¿è¾¼ãã§ä½ãå¬ãããã ããï¼ ä½ãå¬ãããªããã ããï¼ ã¨çåããæã¡ã«ãªãæ¹ãå¤ãã ããã¨æãã¾ãã ãã®è¨äºã§ã¯F*ã§ä½¿ããã¦ããè¤éãªåã®ä¸é¨ã¨ãè¤éãªåãæã¤ãã¨ã®å©ç¹ã»æ¬ ç¹ã®ä¸é¨ãè¿°ã¹ããããç°¡åãªã³ã¼ãä¾ãéãã¦ä½æãã¦ã¿ã¾ãã çåã«å¯¾ããçã F*ã¨ã¯ï¼ ãã¤ã¯ãã½ãã㨠Inria ãéçºä¸ã®ããã°ã©ãã³ã°è¨èªã§ãã ä¾ååã monadic effect ãªã©ãçµã¿è¾¼ã¾ãã¦ãããè¤éãªä»æ§ãåã§è¡¨ç¾ã§ãã¾ããæ§æ㯠OCaml ã F#ãªã©ã®MLç³»é¢æ°åè¨èªã«ä¼¼ã¦ãã¾ãã 詳ããã¯ä¸è¨ã®ãªã³ã¯ãã¡ãåç §ã F* (ããã°
ã²ããã¾å¦çITåå¼·ä¼ https://connpass.com/event/70401/ ã§çºè¡¨ããè³æã§ã
åå¨åã¯heterogeneousãªã¹ããªã©ã®ä¾ãããããããã§ããã©ãRank2Types (or RankNTypes) ã¯ãªããªãããããããä¾ããªãæ°ããã¾ãã¼ã ä»åãåå¨åã¨Rank2Typesã使ã£ã¦ãããæããªã³ã¼ãä¾ãä½ã£ãã®ã§å ±åãããã¾ã :) What is Rank2Types ? ã©ã®ãããªãã®ã§ãããã¯ããã¡ãã§ç¤ºããã¦ãã¾ã haskell.org - Rank-2 Types ä»®å®ããç¥è åå¨å (ExistentialQuantification) ããã§ããã -> Haskell/åå¨éåãããå - Wikibooks IsString (OverloadedStrings) æååãªãã©ã«ãTextåãByteStringåã¨ã㦠(IsString a => aåã¨ãã¦) æ±ããããã«ãªããã¤ å ·ä½çã«ã¯s = "ahoge" :: IsSt
ãããã @yuroyoro @nagise Scalaã¨Haskellã§ã¯ãããããæ¹åæ§ãå ¨ç¶ã¡ãããã ãHaskellã¯ãªãã¸ã§ã¯ãæåçãªã¯ã©ã¹ãã¼ã¹ã®åã·ã¹ãã ããªãã§ãã ãªãã ããã @nagise @yuroyoro ããã¯ç¥ã£ã¦ãã®ã ãã©ãã¸ã§ããªã¯ã¹å¨ãã§ã¯Haskellãããå¼ãåãã«åºãããã®ã§ããã¯æãã¦ããããããªãã¨ãHaskellã§ããã¦Scalaã§ã§ããªããã¨ã£ã¦ãªãã ããã¨ã
_ åä»ãã¨å¤æ´ã«å¯¾ããå¼·ã (æäºè§£èª¬) shiroãããå¬åãããã¨ããç¹ããä»åã®çºç«¯ã¨ãªã£ã(ã¨åã¯èªãã ãã©)ãå¤æ°ã«åããªãã¨ãããã¨ã®å©ç¹ã«ã¤ãã¦èãããã®ä¸çªã®ææã ã£ãã®ã§ã¯ãªãã ãããã æåã«shiroããã¯ãå¤æ´ã«å¯¾ããå¼·ãã¨ãããã®ãã平衡ç¶æ ã®é·çã¨ãã¦èãããã¨ãææ¡ãã(ãåä»ãã¨å¤æ´ã®æå®æ°ã)ãå¼·ãåä»ãã§ããã°ãé平衡ç¶æ ã¯æ¯è¼çããã«è§£æ¶ããï¼ãã ãé平衡ç¶æ ã§ã¯å®è¡ã§ããªãï¼ãå¼±ãåä»ãã§ããã°ãé平衡ç¶æ ã§ããããªãã«å®è¡ã§ããã èªãã§èãããããã¯å®ä½é¨ã¨ãã¦ãããã ããã¾ã§char buff[]ã ã£ããã®ãstd::string buffã«ä¿®æ£ããå¿ è¦ãä»®ã«ãã£ãã¨ããã°ãã¨ã«ãã宣è¨ãå ã«å¤ãã¦ãã¾ããããã¦make cleanãã¦makeãç´ãã°ãå°ãªãã¨ãä¿®æ£ããªããã°ãªããªãç®æã¯ãã®æç¹ã§ãã¹ã¦ç¶²ç¾ ã§ããï¼ãã£ã¨ãã表é¢çã«ãã
PFI社å ã»ããã¼ã§å¼·åãªåã·ã¹ãã ãããããæ§ã ãªæ©æµã«ã¤ãã¦çºè¡¨ããéã®è³æã§ãã è£è¶³çãªè¨äºã¯ãã¡ããã©ããï¼ http://blog.konn-san.com/article/20120412/how-wonderful-to-be-typed ã¾ããçºè¡¨ã®æ¨¡æ§ã¯ä»¥ä¸ã® ustream ããã覧ã«ãªãã¾ãã http://www.ustream.tv/recorded/21781769 Read less
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}