ããã¯ãªãã¸ã§ã¯ãæå Advent Calendar 2014ã®7æ¥ç®ã®è¨äºã§ãã
å ¥åã«ãã£ã¦å¤åããç¶æ ããã¾ãæ±ããã¨ã¯ããã°ã©ãã³ã°ã«ããã¦éè¦ã§ããããã®è¨äºã§ã¯ãç¶æ ãæç¶ããæ±ããã¾ãã¾ãªã¢ããã¼ããç´¹ä»ãæ¯è¼ããã
æç¶ãåããã°ã©ãã³ã°
å½ä»¤ã®åã§ããæç¶ãããå®ç¾©ããå¼ã³åºããããè¨è¿°åãæä¾ãããå½ä»¤ã®çµæã¨ãã¦å¾ãããå¤ã«ä¾åãã¦ã次ã«è¡ãæç¶ãã決å®ããã¨ããæ§è³ªãèã§ããã
ã³ã«ã¼ãã³
æç¶ãã«åºåããè¨ãããã¨ã§ããéä¸ã¾ã§å®è¡ãããæç¶ãããå¤ã¨ãã¦æ±ããæç¶ããæã¤æ½å¨çãªç¶æ ãéãè¾¼ãããã¨ãã§ãããããæè»æ§ãé«ãã
第ä¸ç´æç¶ãåããã°ã©ãã³ã°
æç¶ãããã¼ã¿æ§é ã®ä¸ã¤ã¨ãã¦è¡¨ç¾ããå¼ã³åºãã ãã§ã¯ãªããæç¶ããã®ãã®ã«å¯¾ããæä½ãå¯è½ã«ããããæç¶ãã®çµæã¨ãã¦å¾ãããå¤ã«ä¾åãã¦ã次ã«è¡ãæç¶ãã決å®ãããæ§è³ªã«å¯¾å¿ãããã®ã¨ãã¦ã¢ããããããã¢ããã¯HaskellãPureScriptã§ã¯é常ã«ãã使ããã¦ããã
æ§é ä½ã¨ãã£ã¼ã«ã
è¤æ°ã®å¤ãã¾ã¨ãã¦ä¸ã¤ã®å¤ã¨ãã¦æ±ãããã®æ§é ããã£ã¼ã«ããæå®ãã¦ãå¤ãåå¾ãããæ´æ°ãããã§ããã
第ä¸ç´ãã£ã¼ã«ã
ãã£ã¼ã«ããå¤ã§è¡¨ç¾ãããã¨ã«ãããããæè»ã«æ§é ã«å¯¾ãã¦ã¢ã¯ã»ã¹ã§ããããã«ããã第ä¸ç´ãã£ã¼ã«ãã®å©ç¹ã¯ãããã対象ã¨ããæ§é ã¨å¼·ãçµã³ã¤ãããã¦ããªããã¨ã§ãããä¾ãã°RGBãæ ¼ç´ããæ§é ã«å¯¾ããè²ç¸ã彩度ãæ度ã®ãã£ã¼ã«ããå®ç¾©ãããã¨ãå¯è½ã§ãããlensã¯ãã£ã¨ãå®æããã第ä¸ç´ãã£ã¼ã«ãã®å®è£ ã§ããããã£ã¼ã«ãå士ã®åæãããã¼ã¿åããã®èªåçæãªã©ãã§ããã
ãªãã¸ã§ã¯ãæå
ããªãã¸ã§ã¯ããã¨ãã¡ã½ãããã®ä»çµã¿ãæ°ãã«æä¾ããããªãã¸ã§ã¯ãã«å¯¾ãã¦ã¡ã½ãããå¼ã³åºãã¨ãã¡ã½ããã«é¢é£ä»ããããæç¶ããå¼ã³åºããããªãã¸ã§ã¯ãã®å é¨ç¶æ ãå¤åããããªãã¸ã§ã¯ãã®å é¨ç¶æ ã表ç¾ããã®ã«æ§é ä½ã®ä»çµã¿ããã使ããã¦ãããã¾ããã¤ã³ã¿ã¼ãã§ã¤ã¹ãããã°å é¨ç¶æ ã®æã¡æ¹ãç°ãªã£ã¦ãåãããã«æ±ãããããè¤éãªç¶æ ãæã¤ã¢ããªã±ã¼ã·ã§ã³ã®è¨è¿°ã«ç¹ã«æç¨ã§ããã
第ä¸ç´ãªãã¸ã§ã¯ãæå
ãªãã¸ã§ã¯ãæåã®è«¸æ¦å¿µãè¨èªã«çµã¿è¾¼ãã®ã§ã¯ãªããããã¾ã§ãã¼ã¿æ§é ã§è¡¨ç¾ãããã¨ã§ãããèªç±ã«ãªãã¸ã§ã¯ããæ±ãã第ä¸ç´ãªãã¸ã§ã¯ãæåã«ããã¦ã¯ããªãã¸ã§ã¯ãã¯æç¶ããæç¶ãã«å¤æãããªã¼ãããã³ãã¤ã³ã¿ã¼ãã§ã¤ã¹ã¯ã¡ã½ããã®éåã§ãããç¶æ¿ã¯ã¡ã½ããã®éåã®å å«é¢ä¿ã§è¡¨ãããããªãã¸ã§ã¯ãèªä½ãåæå¯è½ã§ããã»ããã¡ã½ãããã¢ããã«ãããã¨ã§ãã¡ã½ãããåæå¯è½ã«ãã§ãããå¾æ¥ã®ãªãã¸ã§ã¯ãæåã¨ç°ãªããå¯ä½ç¨ã常ã«è¡¨ç¾ã§ããããã§ã¯ãªããããã²ã¼ã ã®ãã¸ãã¯ãªã©ãå®å ¨ã«è¨è¿°ããDSLã«å¿ç¨ã§ããã第ä¸ç´ãªãã¸ã§ã¯ãæåã®å®è£ ã¨ãã¦objectiveããã(ä½ã£ã)ã
FRP(Functional Reactive Programming)
Behavior(æéã«ãã£ã¦é£ç¶çã«å¤åããå¤)ã¨Event(é£ã³é£ã³ã®æéã§çºçããå¤)ãæ±ããBehaviorã§Eventãæ¯ãåããããEventãç³ã¿è¾¼ãã§Behaviorã«ãããããé¢æ°ãçµã¿åããã¦ããã°ã©ã ãè¨è¿°ãããå ¥åã¨åºåãã¯ã£ãããã¦ããã°ãä¿¡å·ã®æµããé常ã«ãããã«è¡¨ç¾ã§ãããä¸æ¹ãæç¶ãçãªèãæ¹ã¨ã®ç¸æ§ã¯è¯ããªãã®ã§æ³¨æããå¿ è¦ããããFRPã®å®è£ ã¨ãã¦ãnetwireãYampaãelereaãsodiumãreactive-bananaãordreaãªã©ãããã
ã¾ã¨ã
ä¸è¬ã«ãè¨èªã®çµã¿è¾¼ã¿æ©è½ã¨ãã¦ä½ãã®æ©è½ãæä¾ãããããåã¨å¤ãç¨ãã¦ç®çã®ãã®ãå®è£ ããã»ããããæè»æ§ãé«ããç®çãä½ã§ãããåã¨å¤ã®è¨è¿°åãéè¦ããã®ããæé«ã®ããã°ã©ãã³ã°ä½é¨ã¸ã®éµã§ããã¨ãã¦ããã®è¨äºãç· ãæ¬ããã