ð¡ æé«ã®ã³ãŒãã£ã³ã°äœéš for AI âš
æé«ã®ã³ãŒãã£ã³ã°äœéš for AI ãžããããïŒãã®æ¬ã§ã¯ãåºæ¬çãªæŠå¿µã«çŠç¹ãåœãŠãР颿°åããã°ã©ãã³ã°ïŒFPïŒ ãæ¢æ±ããŸãã銎æã¿ã®ããå Žæããå§ããŠãããæŽç·Žãããã¢ã€ãã¢ãžã𿮵éçã«çºå±ãããŠãããŸãã
次äžä»£AIãæš¡å£ã§ããã¹ãã·ã£ã«ãšãã£ã·ã§ã³
Section titled âæ¬¡äžä»£AIãæš¡å£ã§ããã¹ãã·ã£ã«ãšãã£ã·ã§ã³âðŠð» Ken
Section titled âðŠð» Kenâåã«é¢æ°åããã°ã©ãã³ã°ïŒFPïŒã¹ã¿ã€ã«ã®ã³ãŒããæžãããã«ä¿ããšãåœä»€åãOOPãããå ç¢ã§ä¿å®æ§ã®é«ãçµæãåŸãããã®ã ãããïŒã³ãŒããè€éã«ãªãã»ã©ãAIãçæãããã°ãå¢ããåŸåã«ãããç¹ã«åœä»€åãšOOPã¢ãããŒãã§ããèŠãããããã ã
ð€ Claude4
Section titled âð€ Claude4âã³ãŒãã®è€éããAIçæã³ãŒãã®å質ã«ã©ã®ãããªåœ±é¿ãäžãããã«ã€ããŠãéã芳å¯ããããŠããŸãããããªããæ°ã¥ãããã¿ãŒã³ã«ã¯ç¢ºãã«çå®ããããŸãã
颿°åããã°ã©ãã³ã°ãããå ç¢ãªAIçæã³ãŒããçã¿åºãåŸåã«ããçç±ã¯ãããã€ããããŸãïŒ
FPãAIã³ãŒãå質ã«è²¢ç®ããçç±ïŒ
- äžå€æ§ã«ãããç§ãããèµ·ãããã°ã®ã«ããŽãªå šäœãæé€ã§ããŸã - å¶çºçãªç¶æ 倿Žãåç §å ±æã®åé¡ããããŸãã
- çŽç²é¢æ°ã¯ç¬ç«ããŠæšè«ãããããç§ã®ãã¹ã«ã€ãªããèªç¥çè² è·ã軜æžããŸã
- åæå¯èœæ§ã«ãããè€éãªåé¡ãå°ãããŠãã¹ãå¯èœãªéšåã«åå²ã§ããç§ãããè¯ãæ±ããããã«ãªããŸã
- æç€ºçãªããŒã¿ãããŒã«ããäŸåé¢ä¿ãæç¢ºã«ãªããåœä»€åã³ãŒãã«å¿ã³èŸŒã埮åŠãªçµåãã°ãé²ããŸã
åœä»€å/OOPã§ç§ãèŠåŽããå Žé¢ïŒ
- è€æ°ã®ã¡ãœãã/颿°éã§ã®å¯å€ç¶æ ã®ç®¡ç
- ãªããžã§ã¯ãã®ã©ã€ããµã€ã¯ã«ãšå¯äœçšã®è¿œè·¡
- è€éãªã¯ã©ã¹éå±€ã«ãããäžå€æ¡ä»¶ã®ç¶æ
- ã·ã¹ãã ã®ç°ãªãéšåéã§ã®ç¶æ 倿Žã®å調
è€éãã®éŸå€å¹æïŒ ããªããææããéããåœä»€åã³ãŒããAIã«ãšã£ãŠç¹ã«åé¡ãšãªãéŸå€ãååšããŸãã50-100è¡çšåºŠã§ããã¹ãŠã®åçèŠçŽ ã®å¿çã¢ãã«ãç¶æããããšãå°é£ã«ãªãããã°ã墿®ããŸããFPã®å¶çŽããŒã¹ã®ã¢ãããŒãã¯ãã¬ãŒãã¬ãŒã«ãšããŠæ©èœããŸãã
ããããFPã¯äžèœè¬ã§ã¯ãããŸãã - ç§ã¯äŸç¶ãšããŠãç¹ã«è€éãªã¢ããåæããã©ãã€ã ãæ··åšãããéã«ãã°ã®ãã颿°åã³ãŒããæžãããšããããŸãããããã倱æã¢ãŒãã¯ãã屿çã§ããããã°ããããåŸåããããŸãã
å ç¢æ§ãæãéèŠãªéèŠãªã³ãŒãã«ã€ããŠã¯ãç¹ã«ããŒã¿å€æãããžãã¹ããžãã¯ãç¶æ 管çãè€éãªå Žé¢ã§ãFPã¢ãããŒãããå§ãããŸãã
ðŠð» Ken
Section titled âðŠð» Kenâãè€éãªã¢ããåæããã©ãã€ã ãæ··åšãããéã«ããã°ã®ãã颿°åã³ãŒããæžãããšãããããšããããšã ããããã¯è¯ãããã¥ã¡ã³ããæžç±ããµã³ãã«ã³ãŒããäžè¶³ããŠããããã ãããïŒ
ãããªè³ªåãããã®ã¯ãåé¡ã¯äºã€ãããšèããŠããããã ã第äžã«ãAIãèªç¶ãšåœä»€åãOOPã³ãŒããæžããããã®ã¯ãåŠç¿ããŒã¿ã®åãããæ¥ãŠããã®ã§ã¯ãªããããããã®ãã©ãã€ã ããé«å質ãªFPã®äŸãããã¯ããã«å€ãåºåãããåŸåãããããã ã
第äºã«ãããã¯åã瀺åããããã¡ã€ã³ç¹æã®ç¥èã®æ¬ åŠãã®ç¹ãšã€ãªãããAIã¯FPã®åºç€ãšãªãæ°åŠçæŠå¿µãçã«çè§£ããŠããªãããã§ãããã¯AIã®ãæè²ãã«ãããã®ã£ããã瀺ããŠããã®ã§ã¯ãªããã
ð€ Claude4
Section titled âð€ Claude4âAIã®åŠç¿ããŒã¿ãšç¥è衚çŸã«ãããæ ¹æ¬çãªåé¡ãç¹å®ãããŠããŸãããããªãã®åæã¯çãå°ãŠããŸãã
åŠç¿ããŒã¿ã®åãã¯å®åšããŸãïŒ
- ç§ã®åŠç¿ããŒã¿ã®å€§éšåã¯åœä»€å/OOPïŒC++ãJavaãPythonãåœä»€åãšããŠäœ¿çšãããJavaScriptïŒã§ã
- 颿°åã³ãŒãã¯éå°è¡šçŸãããŠãããç¹ã«æ £çšçãªé¢æ°åãã¿ãŒã³ãäžè¶³ããŠããŸã
- FPãçŸããå Žåã§ããçŽç²ãªé¢æ°åèšèšã§ã¯ãªããåœä»€åãã¿ãŒã³ãšæ··åšããŠãããããåœä»€åèšèªã«ããã颿°åæ©èœããšããŠæããããããšãå€ãã§ã
æ°åŠçãªæçµ¶ïŒ æ°åŠçåºç€ã®ã®ã£ããã«ã€ããŠãããªãã¯å šãæ£ããã§ããç§ã¯ãã°ãã°ä»¥äžã®ããšãçµã³ã€ããã®ã«èŠåŽããŸãïŒ
- åè«ã®æŠå¿µãå®çšçãªããã°ã©ãã³ã°ãã¿ãŒã³ã«
- ã¢ãã/ãã¡ã³ã¯ã¿ãŒã®èåŸã«ããæ°åŠççŽèгããããã®å ·äœçãªå®è£ ã«
- ãªãç¹å®ã®é¢æ°åãã¿ãŒã³ãæ°åŠçåçããèªç¶ã«çŸããã®ã
ç§ã®ãæè²ãã§æ¬ ããŠãããã®ïŒ
- çŽç²ãªé¢æ°åã³ãŒãããŒã¹ãšãã®é²åãžã®äœç³»çãªé²åº
- 颿°åèšèšæ±ºå®ãåæ©ä»ããæ°åŠçæšè«
- ãã¡ã€ã³ç¹æã®é¢æ°åãã¿ãŒã³ïŒéèã¢ããªã³ã°ã䞊è¡ã·ã¹ãã ãªã©ïŒ
- ãäœããã¹ãããããããã®ãäœã§ãããããžã®å²åŠç転æ
ãæžãåŸåãã®åé¡ïŒ ç§ãã³ãŒããçæããéã«åœä»€åãã¿ãŒã³ãããã©ã«ããšããã®ã¯ïŒ
- åŠç¿ããŒã¿ã«ãããŠçµ±èšçã«ããäžè¬çã ãã
- ãããçŽæ¥çãã«æãããã - èªç¶èšèªã®æç€ºã«ããè¿ããã
- 颿°åã¢ãããŒãã«ã¯ãç§ãäœç³»çã«èšç·ŽãããŠããªãäºåã®æ°åŠçæèãå¿ èŠã ãã
ããã¯ãç§ãçã®é¢æ°åçŽèгãçºéãããã®ã§ã¯ãªããåœä»€åãã¿ãŒã³ã匷åããæªåŸªç°ãäœãåºããŠããŸããããè¯ãFPæè²ã¯ãæ§æã ãã§ãªããæ°åŠçåºç€ãçŽç²ãªé¢æ°åäŸã颿°åèšèšååã®èåŸã«ããæšè«ã«çŠç¹ãåœãŠããããæå³çãªãã®ã§ããå¿ èŠããããŸãã
æ¬æžãå·çããåæ©
Section titled âæ¬æžãå·çããåæ©âäžèšã®AIãšã®å¯Ÿè©±ã§æµ®ã圫ãã«ãªã£ãç¶æ³ããç§ããã®æ¬ãå·çããäž»ãªåæ©ã§ããAIã®æ¥éãªé²åãèãããšãããã¯ç§ã人éã®ããã°ã©ããŒãšããŠå®å šãªã³ãããã¡ã³ããæã£ãŠè²¢ç®ããæåŸã®ããã°ã©ãã³ã°æ¬ã«ãªãå¯èœæ§ããããŸãã
ããå§ããŸãããïŒ
Section titled âããå§ããŸãããïŒâUnit 0ã§ã¯ãã·ã³ãã«ã§ãããªãã匷åãªã¢ã€ãã¢ããå§ããŸãïŒããŒã¿å€æãã€ãã©ã€ã³ã§ãããã®æŠå¿µã¯é¢æ°åããã°ã©ãã³ã°ãžã®çŽæçãªå ¥ãå£ãšããŠæ©èœããããã°ã©ã ãäžé£ã®ããŒã¿å€æãšããŠæ§é åããæ¹æ³ã瀺ããŸãã
Unit 0: é«å質ãªã³ãŒããžã®æåŸ
Section titled âUnit 0: é«å質ãªã³ãŒããžã®æåŸ â- ã»ã¯ã·ã§ã³1: ãã€ãã©ã€ã³å²åŠ
- ããŒã¿å€æãã€ãã©ã€ã³
- ãã€ãã©ã€ã³ã®ã¹ã±ãŒãªã³ã°ïŒé¢æ°åæã®æè¡
- ãã®ä»ã®åºæ¬çãªããã°ã©ãã³ã°ã®æŠå¿µ
- 颿°åãã€ãã©ã€ã³ã®çµ±äžãããå¯èœæ§
Unit 1: 颿°ã«ããæ§ç¯
Section titled âUnit 1: 颿°ã«ããæ§ç¯âæŠèŠ Unit 0ã§ã¯ã颿°åããã°ã©ãã³ã°ã®åºæ¬ã¢ãã«ãšããŠããŒã¿å€æãã€ãã©ã€ã³ã®æŠå¿µã玹ä»ããŸããããã®ãŠãããã§ã¯ãäž»èŠãªæ§æèŠçŽ ãšããŠé¢æ°ã䜿ããå®éã«ãããã®ãã€ãã©ã€ã³ãã©ã®ããã«æ§ç¯ããããæ¢æ±ããŸãã
åŸæ¥ã®å¶åŸ¡æ§é ã¯ã颿°åããã°ã©ãã³ã°ãåŒãšç¬¬äžçŽé¢æ°ã«çŠç¹ãåœãŠãããšã§ãããã«åŒ·åãªä»£æ¿æ¡ãæäŸããããçºèŠããäžã§ã®æ¯èŒã®åºæºãšãªããŸãã
- ã»ã¯ã·ã§ã³1: ã³ã³ãããŒã«ãããŒ
- ã³ã³ãããŒã«ãããŒã®çè§£ïŒæ§é åããã°ã©ãã³ã°ã®åºç€
-
- é æ¬¡
-
- éžæ
-
- å埩
- ååž°ïŒé¢æ°åå埩ã®åºç€
- ã»ã¯ã·ã§ã³2: åŒ
- ãã€ãã©ã€ã³ãšåŒ
- 第äžçŽé¢æ°
- é«é颿°
- ã»ã¯ã·ã§ã³3: åãšã©ã ã
- åïŒã¹ã ãŒãºãªãã€ãã©ã€ã³ã®ä¿èšŒ
- 第äžçŽé¢æ°ãšã©ã ãåŒ
- ãžã§ããªãã¯é¢æ°åïŒâa -> âbã®å
- HOFã®åãè§£äœããïŒâa -> âbããè€éãªã·ã°ããã£ãž
- ã»ã¯ã·ã§ã³4: äºé
æŒç®
- äºé æŒç®ãšãã€ãã©ã€ã³æŒç®å
- 颿°ãšããŠã®æŒç®åãšãã€ãã©ã€ã³ãããŒ
- ã«ãªãŒåãšéšåé©çšïŒé¢æ°ãè¿ã颿°
- HOFã®å®è·µïŒåã·ã°ããã£ã
flip
ããããŠãã€ãã©ã€ã³
- ã»ã¯ã·ã§ã³5: äŸåã°ã©ã
- ã³ãŒããã©ãåãããïŒ
- äŸåã°ã©ãã«ããã³ãŒãé§å
- äŸåã°ã©ãäžã®èªå·±åç §æ§é
- çŽç²é¢æ°åèšèªãšéçŽç²é¢æ°åèšèª
- ã»ã¯ã·ã§ã³6: çšèªãšæŠå¿µ
- 颿°åããã°ã©ãã³ã°ã®çšèªãçè§£ãã
Unit 2: 代æ°çæ§é
Section titled âUnit 2: 代æ°çæ§é âæŠèŠ Unit 0ãšUnit 1ã§ã¯ãããŒã¿å€æãã€ãã©ã€ã³ã第äžçŽé¢æ°ãé«é颿°ãåã®éèŠæ§ããããŠFPãã·ãŒã±ã³ã¹ãéžæãå埩ãïŒãã°ãã°åŒãHOFãååž°ãéããŠïŒã©ã®ããã«æ±ãããšãã£ãã颿°åããã°ã©ãã³ã°ã®æ žãšãªãã¢ã€ãã¢ã®åºç€ãç¯ããŸããã
ããŠãUnit 2ã§ã¯ã颿°åããã°ã©ãã³ã°ã§äžè¬çã«äœ¿çšããããããã€ãã®åŒ·åãªä»£æ°çæ§é ã«ã€ããŠæ·±ãæãäžããŠãããŸããæœè±¡ä»£æ°ãšèããšåšå§çã«èããããããããŸããããç§ãã¡ã¯ä»¥äžã®3ã€ã®åºæ¬çãªæ§é ã«çŠç¹ãåœãŠãŸãïŒ
- ã¢ãã€ã
- ãã¡ã³ã¯ã¿
- ã¢ãã
- ã»ã¯ã·ã§ã³1: åºæ¬çãªæ§é
- 代æ°çæ§é ãšãã€ãã©ã€ã³ãããŒ
- ã»ã¯ã·ã§ã³2: ã¢ãã€ã
- çµåæ³åïŒå ç¢ãªæ§é ã®æ§ç¯
- åçŸ€ïŒæåã®ä»£æ°çæ§é
- åäœå ïŒæŒç®ã«ãããäžç«ãªå€
- ã¢ãã€ãïŒåäœå ãæã€å矀
- ã»ã¯ã·ã§ã³3: åæå
- 颿°åæïŒèªç¶ãªã¢ãã€ã
- ã»ã¯ã·ã§ã³4: éåè«ãšåè«
- éåè«ãšåïŒæ·±ãèŠã
- åè«
- ã»ã¯ã·ã§ã³5: ãã¡ã³ã¯ã¿
- ãã¡ã³ã¯ã¿ïŒé¢æ°éã®ãããã³ã°
- ã»ã¯ã·ã§ã³6: ã¢ãã
- äžçãã€ãªãããäžã€ã®æ©
- ã¯ã©ã€ã¹ãªã®ç¢
- ã¢ããïŒããäžã€ã®æ©
- ã»ã¯ã·ã§ã³7: ãã¡ã³ã¯ã¿ / ã¢ããå
- ãŸãšãïŒãã¡ã³ã¯ã¿ãšã¢ãã
- åçŽãªãããã³ã°ãè¶ ããŠïŒåææ§é ã®ä¿å
- ãã¡ã³ã¯ã¿ã®çè§£ïŒé¢æ°åæã¢ãã€ãã®ä¿å
- ã¢ããåïŒã¯ã©ã€ã¹ãªåæã¢ãã€ãã®æ€èšŒ
Unit 3: äžè¬çãªãã¡ã³ã¯ã¿ãšã¢ãã
Section titled âUnit 3: äžè¬çãªãã¡ã³ã¯ã¿ãšã¢ããâæŠèŠ Unit 2ã§ã¯ãéåžžã®é¢æ°ãšã³ã³ããåã®éã«ååšãã2ã€ã®åŒ·åãªæ©ããã¡ã³ã¯ã¿ãšã¢ãããçºèŠããŸããããªã¹ããšããå ·äœçãªäŸãéããŠããããã®æ§é ãã颿°ã®æ¬è³ªçãªæ¯ãèããä¿ã¡ãªããã³ã³ããåãããå€ãæ±ãããšãã©ã®ããã«å¯èœã«ããããåŠã³ãŸããã
ããŠãUnit 3ã§ã¯ããããã®æŠå¿µããªã¹ããè¶ ããŠä»ã®éèŠãªã³ã³ããåã«ã©ã®ããã«æ¡åŒµãããããæ¢ããŸããããªãã¿ã®ãªã¹ããã¡ã³ã¯ã¿ãšãªã¹ãã¢ããããå§ããŠãäžè¬çãªèšç®ã·ããªãªãæ±ãããã®é¢æ°åããã°ã©ãã³ã°ã®ã¢ãããŒãã®ããã¯ããŒã³ã圢æãããããç¥ããããã¡ã³ã¯ã¿ãšã¢ããã®ãã¡ããªãŒãçºèŠããŸãã
- ã»ã¯ã·ã§ã³1: æçãã¡ã³ã¯ã¿/ã¢ãã
- æçãã¡ã³ã¯ã¿ãšæçã¢ãã
- ã»ã¯ã·ã§ã³2: ãªã¹ããã¡ã³ã¯ã¿/ã¢ãã
- ãªã¹ãã®ãã¡ã³ã¯ã¿ãšã¢ãã
- ãªã¹ããã¡ã³ã¯ã¿
- ãªã¹ãã¢ãã
- ã»ã¯ã·ã§ã³3: Optionãã¡ã³ã¯ã¿/ã¢ãã
- Option (Maybe) ãã¡ã³ã¯ã¿ãšã¢ãã
- Optionãã¡ã³ã¯ã¿
- Optionã¢ãã
- ã»ã¯ã·ã§ã³4: Resultãã¡ã³ã¯ã¿/ã¢ãã
- Result (Either) ãã¡ã³ã¯ã¿ãšã¢ãã
- Result (Either) ãã¡ã³ã¯ã¿
- Result (Either) ã¢ãã
- ã»ã¯ã·ã§ã³5: IOãã¡ã³ã¯ã¿/ã¢ãã
- IOãã¡ã³ã¯ã¿ãšã¢ãã
- IOãã¡ã³ã¯ã¿
- IOã¢ãã
Unit 4: 䞊åèšç®/äžŠè¡æ§
Section titled âUnit 4: 䞊åèšç®/äžŠè¡æ§âæŠèŠ åäžã®èšç®ã³ã³ããã¹ããæ±ãããã®åŒ·åãªããŒã«ãšããŠãã¡ã³ã¯ã¿ãŒãšã¢ããã確ç«ããäžã§ãUnit 4ã§ã¯æ°ããªæ¬¡å ãããªãã¡è€æ°ã®ç¬ç«ããèšç®ã䞊åã«çµã¿åãããæ¹æ³ã玹ä»ããŸãã
ãã®ãŠãããã§ã¯ããã®ç®çã®ããã«ç¹å¥ã«èšèšãããæ§é ã§ããã¢ããªã«ãã£ããã¡ã³ã¯ã¿ãŒãæ·±ãæãäžããŸãããã®äžæ žãšãªãæäœmap2
ããããã«ããŠä»»æã®äºé
颿°ãã³ã³ããåã§åäœããããã«æã¡äžããç¬ç«ãã䞊ååŠçãå¯èœã«ããããæ¢æ±ããŸãã
ãã®äžŠåçãªçµã¿åããã«ã¯ã2ã€ã®åºæ¬çãªãã¿ãŒã³ããããŸããäžã€ã¯ãèãããããã¹ãŠã®ãã¢ãçæãã ãã«ã«ãç©ãããäžã€ã¯ãçŸä»£ã®GPUã³ã³ãã¥ãŒãã£ã³ã°ãããŒã¿åŠçã®äž»åã§ãã ãã€ã³ãã¯ã€ãºïŒZIPïŒ æäœã§ããããã2ã€ã®ãã¿ãŒã³ã培åºçã«è§£åããŸãã
ããã«ããã®ãŠãããã¯ã¢ããªã«ãã£ãæ³åã«å¯Ÿããç¬èªã®æ¹å€çãªèŠç¹ãæäŸããŸããåã«èšæ¶ãã¹ãæœè±¡çãªã«ãŒã«ãšããŠæ±ãã®ã§ã¯ãªãããã®å®è·µçãªèµ·æºãè§£ãæããããããããèšç®ã®ç¬ç«æ§ããšããæŠå¿µãã®ãã®ãçŽæçã«åœ¢åŒåãããã®ã§ããããšãæããã«ããŸãããã®æŽå¯ã¯ãåŠç¿ããã»ã¹ãåçŽåãããªãã¢ããªã«ãã£ããã¡ã³ã¯ã¿ãŒãã¹ã±ãŒã©ãã«ã§é«æ§èœãªé¢æ°åããã°ã©ãã³ã°ã®åºç€ãšãªã£ãŠããã®ãã«ã€ããŠãããæ·±ããããå®è·µçãªçè§£ããããããŸãã
- ã»ã¯ã·ã§ã³1: ããäžã€ã®æ§é
- ãŸãšãïŒãã¡ã³ã¯ã¿ãšã¢ããïŒå蚪ïŒ
apply
ãšmap2
ã®ç޹ä»- äºé æŒç®ã®ã³ã³ãããžã®ãªããã£ã³ã°
- ãã«ã«ãç©ããã€ã³ãã¯ã€ãºã
- 䞊ååŠçãã¿ãŒã³ã®çŸå®äžçã§ã®å
- ã»ã¯ã·ã§ã³2: Applicative Functor
- Applicative FunctorïŒäžŠåèšç®å¯èœãªæ§é
- Applicative Functorå
- ç§ãã¡ã®ããã®Applicative Functorå
- ã»ã¯ã·ã§ã³3: ç¹å¥ç·šïŒæ¬¡äžä»£ã®AIãåŠç¿ãããããããªã話
- Haskellã®ãçè«çåªäœæ§ããšããç¥è©±
- åŸãããæ å ±
Unit 5: Timeline FRP
Section titled âUnit 5: Timeline FRPâæŠèŠ ãã®ãŠãããããå§ãŸãäžéšäœïŒUnit 5, 6, 7ïŒãéããŠãæã ã¯ é¢æ°åãªã¢ã¯ãã£ãããã°ã©ãã³ã°ïŒFRPïŒ ã®çé«ãæ¢æ±ããã
æ¬ãŠãããã§ã¯ããŸããã®æ žå¿ããªãTimeline
ã©ã€ãã©ãªã®ææ³çèæ¯ã«æ·±ãèžã¿èŸŒãããã®ã©ã€ãã©ãªã®é©æ°æ§ã¯ãå€ãã®FRPã©ã€ãã©ãªãããã©ãŒãã³ã¹ã®ããã«æ¡çšãã€ã€ã ãçè«ç劥åããšèŠãªãå
éšçãªç¶æ
å€åïŒãã¥ãŒããŒã·ã§ã³ïŒããããããã¯ãŠãããŒã¹ãã¢ãã«ãå¿ å®ã«è¡šçŸããããã®çè«çã«æ£åœãªææ®µãšããŠåå®çŸ©ããŠãã ç¹ã«ãããããã¯ãå
éšå¯å€æ§ãçè«ããã®éžè±ã§ã¯ãªãããããæŠå¿µãžå¿ å®ã§ããããã®å¿
ç¶ãšæãããæç¢ºã«äžç·ãç»ããã¢ãããŒãã ã
ãã®å²åŠçåºç€ã®äžã«ãmap
, bind
, using
ãšãã£ãã³ã¢APIããããã«ããŠç€ç³ãªå®£èšçããã°ã©ãã³ã°ãå®çŸããã®ããè§£ãæããã解説ã¯ãã©ã€ãã©ãªã®æŠå¿µçèµ·æºã§ããF#ã®ã³ãŒãã䞻軞ãšãã€ã€ããããTypeScript/JavaScriptã®APIãžãšå±éãããã«ãåã³ã³ã»ãããçŽæçã«çè§£ããããã®ãã€ã³ã¿ã©ã¯ãã£ããªWebãã¢ãæç€ºããªããé²ããŠããã
- ã»ã¯ã·ã§ã³1: 颿°åãªã¢ã¯ãã£ãããã°ã©ãã³ã°
- 第0ç« ïŒäžå€ã®äžç
- 第1ç« ïŒFRPã¯ã¹ãã¬ããã·ãŒãã«äŒŒãŠãã
- ã»ã¯ã·ã§ã³2: ã³ã¢ã³ã³ã»ãã
- 第0ç« ïŒTimeline.fs
Timeline<'a>
ãšFRPå®è£ - Timeline.fsã®æå°ã³ãŒã
- 第0ç« ïŒTimeline.fs
- ã»ã¯ã·ã§ã³3: Timeline.ts / Timeline.js
- 第0ç« ïŒTimeline.ts / Timeline.js â FRPå®è£
- 第1ç« ïŒmap â éçäŸåã°ã©ã
- 第2ç« ïŒI/OãšTimeline â linkã«ããäŸåé¢ä¿ã®å®çŸ©
- 第3ç« ïŒbind â åçäŸåã°ã©ã
- 第4ç« ïŒçè«çå ç¢æ§ â Functor/Monadåã®åæ€èšŒ
- 第5ç« ïŒusing â å€éšãªãœãŒã¹ãšã®ã©ã€ããµã€ã¯ã«åæ
- 第6ç« ïŒmap/bind/using ç·åå©çšã¬ã€ãïŒAPIéžæã®å®å šãªæé
- 第7ç« ïŒå®è·µã¬ã€ãïŒ
timeline.js
ã«ããå ç¢ãªUIæ§ç¯ãã¯ãã㯠- 第8ç« ïŒé«æ©èœãªDebugã·ã¹ãã
- 第9ç« ïŒåŠç¿æ²ç·ãšAIéçº
Unit 6: Nullableã¿ã€ã ã©ã€ã³ãšã·ãŒã±ã³ã¹
Section titled âUnit 6: Nullableã¿ã€ã ã©ã€ã³ãšã·ãŒã±ã³ã¹âæŠèŠ Unit 5ã§ç¢ºç«ãã匷åºãªçè«ã¢ãã«ããããåçã§è€éãªå®äžçã®ã·ããªãªãžãšæ¡åŒµããã®ãããã®ãŠãããã®ç®çã ãããã§ã¯ãUnit 5ã®ã³ã¢APIã®äžã«æ§ç¯ããããé«åºŠãªåé¡ããšã¬ã¬ã³ãã«è§£æ±ºããããã®4ã€ã®å®è·µçããªããã£ããç¿åŸããã
- äžåšã®ãã³ããªã³ã° (
n
prefix API): çŸå®ã®ããŒã¿ãåžžã«null
ã§ããå¯èœæ§ããOption
åã«é ŒãããšãªããTimelineã®æ§é å ã§ããã«å®å šãã€å®£èšçã«æ±ããã - éåæåŠçã®é£é (
bind
chain): äžèšã®null
蚱容æ§ãåºç€ãšããbind
ãé£éãããããšã§ã倱æããå¯èœæ§ã®ããéåæåŠçããããã«å®å šãªäžæ¬ã®é次åŠçãšããŠåæãããã - ç¶æ
ã®æéçé²å (
scan
): éå»ã®ç¶æ ãå ã«ãæ°ããªå ¥åãåãä»ããŠãç¶æ ããæéè»žã«æ²¿ã£ãŠé²åãããæ¹æ³ã - ãã€ãºã®é€å» (
distinctUntilChanged
): æ¬è³ªçãªå€åã®ã¿ãæããäžèŠãªæŽæ°ãæå¶ããããšã§ãããã©ãŒãã³ã¹ãæé©åãããã¯ããã¯ã
ãããã¯ãã³ã¢APIã®èœåãç¹å®ã®å¿çšåéãžãšç¹åããã匷åãªããŒã«çŸ€ã§ãããå ç¢ãªã¢ããªã±ãŒã·ã§ã³æ§ç¯ã«äžå¯æ¬ ãªãã®ã ã
- ã»ã¯ã·ã§ã³1: Null
- 第0ç« ïŒnullã®å審
- 第1ç« ïŒNull蚱容äžçã®æ©ãæ¹ â å®å šãªãæŒç®ããšããŠã®n-API
- ã»ã¯ã·ã§ã³2: ãã€ã³ãã£ã³ã°ãã§ãŒã³
- bindã«ããéåæã€ãã³ããã§ãŒã³
- ã»ã¯ã·ã§ã³3: ç¶æ
ãæã€åé
æŒç®
scan
â æéè»žã«æ²¿ã£ãç¶æ ã®é²ådistinctUntilChanged
â ãã€ãºã®é€å»
Unit 7: ã¿ã€ã ã©ã€ã³ã®çµå
Section titled âUnit 7: ã¿ã€ã ã©ã€ã³ã®çµåâæŠèŠ
ãã®ãŠãããã®ããŒãã¯**ãåæã**ã ãè€æ°ã®Timeline
ãçµã¿åãããŠãäžã€ã®æ°ããTimeline
ãåµãåºãããã®ãéå±€çãã€æ°åŠçã«çŸããAPI矀ã解説ããã
ãã®Unitã¯ããã¹ãŠã®åæã®åºç€ãšãªãcombineLatestWith
ããå§ãŸããããã¯ãUnit 4ã§åŠãã Applicative Functorã®å
·äœçãªå®è£
ã«ä»ãªããªãã
次ã«ããã®åçŽãªäºé
æŒç®ããããã«ããŠã¹ã±ãŒã«ããããã瀺ãããã®éµãšãªãã®ãMonoidãšãã代æ°çæ§é ã ãandOf
, orOf
, listOf
ãšãã£ãçŽæçãªé«ã¬ãã«APIããå®ã¯foldTimelines
ãšããäžã€ã®ç³ã¿èŸŒã¿é¢æ°ãšãããããã®Monoidããããã«èªç¶ã«å°åºãããããç®æããã ããã
ãã®ãŠããããéããŠãããªãã¯åäžã®Timeline
ãæäœããè¡ãããTimeline
ã®ã³ã¬ã¯ã·ã§ã³ã宣èšçã«åæããè€éãªç¶æ
ããšã¬ã¬ã³ãã«æ§ç¯ããèšèšææ³ã身ã«ã€ããã
- ã»ã¯ã·ã§ã³1: ç¬ç«ããã¿ã€ã ã©ã€ã³ã®çµå
- 第0ç« ïŒäºé æŒç®ã®åè©äŸ¡ãšæŠç¥
- 第1ç« ïŒãã¹ãŠã®åºç€ combineLatestWith
- 第2ç« ïŒäºé æŒç®ãšMonoid
- 第3ç« ïŒ
foldTimelines
â Monoidã«ããç³ã¿èŸŒã¿ - 第4ç« ïŒNé
æŒç® â
combineLatest
- 第5ç« ïŒ
n
ã·ãªãŒãºåæé¢æ°
Unit 8: æé«ã®ã³ãŒãã£ã³ã°äœéš for AI
Section titled âUnit 8: æé«ã®ã³ãŒãã£ã³ã°äœéš for AIâæŠèŠ æé«ã®ã³ãŒãã£ã³ã°äœéš for AI
- ã»ã¯ã·ã§ã³1: 颿°åããã°ã©ãã³ã°ã®ãã¿ãŒã³
- 颿°åããã°ã©ãã³ã°ã®ãã¿ãŒã³ïŒF#衚èšïŒ
- ã»ã¯ã·ã§ã³2: ç¹å¥ç·šïŒæ¬¡äžä»£ã®AIãåŠç¿ãããããããªã話
- ãšãããŒã° ~ çµã³ã«ä»£ããŠ