Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
ã¯ããã« åã«ããã°ã§æ¸ããè¨äºãªã®ã§ããããã£ãããªã®ã§Qiitaã«ãæç¨¿ãã¾ãã è±åç´è ã®å£ã¨ãã¦åè¨ãã¦ããã¯ãã¼ã¸ã£ãã¯ãã¼ã¸ã£ã®ä½¿ãæ¹ã¯ããã£ããã©ãããããªè¨äºãè¦ãã¨ã¯ãã¼ã¸ã£ã¯åé¡ç¹ãããã¿ãããããã«ãããããã¯ãã¼ã¸ã£ã®ä½¿ãæããã¾ãã¡ããããªãã¨æã£ã¦ã¯ãã¼ã¸ã£ã«å度ç«ã¡åãããã¨æã£ã次第ã§ããåããããªæ©ã¿ãæ±ãã¦ãããã¶ã¤ãã¼ãããã³ã¼ãã¼ãããããã³ãã¨ã³ãã¨ã³ã¸ãã¢ããã®åèã«ãªãã°å¬ããã§ãã ã¯ãã¼ã¸ã£ã¨ã¯ ã¨ãããããããã & è£è¶³ããã¾ãã ããè¦ãããã¯ãã¼ã¸ã£ã®è¦æ¬ããã¡ãã ããã§ç°¡åã«ã¯ãã¼ã¸ã£ã«ã¤ãã¦èª¬æãã¾ããã¡ãªã¿ã«ãæè¿èªãã æ¬ã§ä½ã¨ãªãJavaScriptãæ¸ãã¦ãã人ã䏿©å ã«é²ãããã®æ¬ã説æã¨ãã¦ããããããã£ãã®ã§ããã¡ããå¼ç¨ããã¦ããã ããªããã ã¾ãã¯ãã¼ã¸ã£ã¨ã¯ ãã¼ã«ã«å¤æ°ãåç §ãã¦ããã颿°ã®ä¸ã«å®ç¾©ãã¦ãã
ã¯ããã« åæ© å æ¥ãããªè¨äºãæ¸ãã¾ããã ãã¡ã¤ã³é§åè¨è¨ã¨é¢æ°ããã°ã©ãã³ã°ãScalaã§ - Qiita ãã¡ã¤ã³é§åè¨è¨ã¨é¢æ°ããã°ã©ãã³ã°ãElixirã§ - Qiita Scala ã«ãã¦ã Elixir ã«ãã¦ããç´ç²ãªé¢æ°åããã°ã©ãã³ã°è¨èªã§ã¯ãªãã¦ããªãã¸ã§ã¯ãæåã®è¦ç´ ãåãå ¥ãããã«ããã©ãã¤ã ãªè¨èªã ã¨æãã¾ããã䏿¹ã§æ§æ¥ã®ãªãã¸ã§ã¯ãæåãªè¨èªã«é¢æ°åã®ãã©ãã¤ã ãå ¥ãè¾¼ãã§ãã¦ããã¨ããå¾å (map, reduce ã¨ãã©ã ãã¨ã) ããããããããå ãã両è ãå ±ã«è¿ã¥ãã¦ããããã®ããã¨ãããæ´»ãããªããçºå±ããã½ããã¦ã§ã¢éçºã«ãããçç£æ§ã夿´å®¹ææ§ãä¸ãã£ã¦ããã®ããªãã¨æå¾ ãè¨ãã¿ã¾ãã ãã®è¨äºã§ã¯ã颿°åã®ä½ãããã®ããPHP + ãªãã¸ã§ã¯ãæåã§æ¸ãã«ããã£ã¦ãä½ãåãå ¥ããããã¨ããã¯ãªãããã¨ããç¹ã«ã¤ãã¦ããã¡ã¤ã³é§åè¨è¨ã®ã¤ãã£
(2016/12/11ãããã ãããã£ã¼ãããã¯ããã¨ã«ç¿»è¨³ãä¿®æ£ãããã¾ããã) JavaScriptã«ããã¦âç´ç²é¢æ°âã¨ã¯ã©ãããæå³ã§ããããï¼ãä¸è¬çãªããã°ã©ã ã®ç¨èªã§ã¯ãç´ç²æ§ã¨ããã®ã¯âåç §ééæ§âã¨ãã¦ç¥ããã¦ãã¾ããã«ãã³ããè¨ãã¨ãã å¼ã颿°ã®å¼ã³åºãããã®çµæã¨ç½®ãæããã¨ãã¦ããããã°ã©ã ã®æ¯ãèããæ±ºãã¦å¤ãããªã ããã¨ãã¾ãå¥ã®è¨ãæ¹ããããªããã åãå ¥åå¤ã渡ããã³ã決ã¾ã£ã¦åãåºåå¤ãå¾ããã ãã¨ãããã¨ã§ãã ãããªãç´æçã«çè§£ã§ãããã«èããã¾ããã x => x * 10 ãªã©ã®é¢æ°ã¯ç´ç²ã«è¦ãã¾ããããã«æ°åã® 3 ã弿°ã¨ãã¦æ¸¡ãããå¿ ããåºåå¤ã¨ã㦠30 ãå¾ããã¾ãããããã§ã¯ããã颿°ãç´ç²ã§å¥ã®é¢æ°ãç´ç²ã§ãªãã¨ãã©ããããåããã®ã§ãããï¼ãã³ã¼ããèªãã ãã§ååã§ããããï¼ ä¸è¬çã«ã©ãæããã¦ããããè¦ã¦ã¿ã¾ããããæ¨æ¥
æåã«: ãFunctional Programming æé«ï¼ãã¨ãã話ã§ã¯ãªãã§ã JSã¯éä¿¡ãã¹ãã¬ã¼ã¸ã«ä¿åãããã¼ã¿ã®æ±ãã®é¢ä¿ã§ãJSONã«ã·ãªã¢ã©ã¤ãºã§ãããã¨ãè³ä¸å½é¡ã«ãªãã±ã¼ã¹ãå¤ãã®ã§ãã¯ã©ã¹ãã¼ã¹ã®è¨è¨ã§èªèº«ã«å¯ä½ç¨ãèµ·ããã¡ã½ãããããã¤ãã¥ã¼ã¿ãã«ãª T => T ãªstatic methodã¨ãã¦åãé¢ãã¦ããã¨æ±ããããã±ã¼ã¹ãå¤ãâ ç¾å ´ã®å£° (@mizchi) 2016å¹´9æ6æ¥ è¤éãªãªãã¸ã§ã¯ãã®ã·ãªã¢ã©ã¤ãºã¯ç°¡åã ãã©ãéã«ã·ãªã¢ã©ã¤ãºããããªãã¸ã§ã¯ããããã«ããæ§ç¯ããã®ãé£ããã®ã§ãJSONã®æ§é ä½èªèº«ã¨ã¯å¥ã«ç¬ç«ãã¦ç¬ç«ããã¡ã½ããã¨ãã¦ãã«ããåãé¢ããã¦ããæ¹ãæ±ããããâ ç¾å ´ã®å£° (@mizchi) 2016å¹´9æ6æ¥ ä¸å¿ã³ã³ã¹ãã©ã¯ã¿åãä¿åãã¦ã·ãªã¢ã©ã¤ãº/復å ããæ¹æ³ã¯ãã£ã¦ãRPGãã¯ã¼ã«MVã®ã³ã¼ããèªãã¨ããããæãã«
â»ä»æ§ã®ç´°ããããã³ãã¯ãåå¼ãâ¦ã ãªãã¸ã§ã¯ãæåã§è§£ã ã¿ããªå¤§å¥½ããªãã¸ã§ã¯ãæåã§ã¯ãç©åä½ã§èãã¾ããè¨ãããããªã§ãããããæ¹ã¯ããããããã¨æãã¾ãããã¾ããå¼å½ã¨ããåä½ã§éãã㨠åæããå¼å½ã¯ã©ã¹ ç¶æ 主é£å åæãåæ° 夿®µ ⦠æ¯ãèãï¼ ã¤ã¾ã¿é£ã() 夿®µåå¾() åæãåæ°åå¾() ⦠ã®ãããªæãã§ãå¼å½ã«å¿ è¦ãªè¦ç´ ã¨å¿ ç¨ãªå¦çãã²ã¨ã¾ã¨ã¾ãã«ãã¦æ±ãã¨ããã®ããªãã¸ã§ã¯ãæåã§ãã ãå¼å½ã¹ã¼ãã¼ã¯ã©ã¹ãä½ã£ã¦ç¶æ¿ã§åæãå¼å½ã¯ã©ã¹ããã¨ããããã«æ¡å¼µãèããè¨è¨ã«ããã¨ããã®ãæ±ç¨æ§ãå¿ è¦ãªå ´åã¯è¯ãã¨æãã¾ãã ã§ã¯æ©éã³ã¼ãã«ãã¦ã¿ã¾ãããã è¨èªã¯JavaScriptã«ãã¦ãã¾ãã (function(){ window.onload=function(){ ////////////////// // ã¯ã©ã¹ã®å®ç¾© // ///////////
For the past few months, Iâve been on adventure learning everything I could about functional programming. It seems like every week thereâs a new frontend framework or library claiming some inspiration from functional programming, so I decided to check it out. One of my explorations was into Elm: an amazing Haskell-inspired language for building web applications. It gave me a taste of what function
çµè«ãå ã«ã¾ã¨ããã¨ã以ä¸ã®ï¼ã¤ã§ãã 1. ã°ãã¼ãã«å¤æ°ã®å®£è¨ããªãã¹ãæ¸ããããå ´å 2. ã¦ã¼ã¶ã弿°ãä¸ãã¦ã«ã¹ã¿ãã¤ãºå¯è½ãªèªç±åº¦ã®é«ãã颿°ããçæãããå ´å 3. ååãå¼ã³åºããã¦å®è¡ãããã¨ãã®æ¼ç®çµæï¼å¤ï¼ãå é¨ã§ä¿åãã¦ã次ã«å¼ã³åºãããã¨ãã«ãååã®çµæï¼å¤ï¼ã«å¯¾ãã¦ãããã«åãå¦çï¼æ¼ç®ï¼ãè¡ã颿°ãçæãããå ´å 以ä¸ããã¯ãã¼ã¸ã£ãã®å®ç¾©ãããé ã®æ´çã¾ã§ãåãããããåèã¦ã§ããµã¤ãã¸ã®ãªã³ã¯ãå¼µãã¤ã¤ãè¦ã¦ããã¾ãã ã å®ç¾© ãã¯ãã¼ã¸ã£ takeharuãã Qiitaè¨äºï¼2013/07/22ï¼ãJavaScriptã§ã¯ãã¼ã¸ã£å ¥éã ãèªåãå²ãã¹ã³ã¼ãã«ãã夿°ãåç §ã§ãã颿°ã Wikipedia ãã¯ãã¼ã¸ã£ã 弿°ä»¥å¤ã®å¤æ°ãå®è¡æã®ç°å¢ã§ã¯ãªããèªèº«ãå®ç¾©ãããç°å¢ï¼éçã¹ã³ã¼ãï¼ã«ããã¦è§£æ±ºãããã¨ãç¹å¾´ã¨ããã颿°ã¨ãããè©ä¾¡ããç°
颿°åããã°ã©ãã³ã° (functional programming) ã®å©ç¹ã説ãéã«ããæã¡åºãããã®ããQuickCheck ã®éçºè ã®ä¸äººã§ãã John Hughes ã 1984 å¹´ã«èããè«æ "Why Functional Programming Matters" ã ãããªã颿°ããã°ã©ãã³ã°ã¯éè¦ããã¨ããé¡åã§æ¥æ¬èªè¨³ãããã¦ããã®ã§ãèªãã ãã¨ããã人ãå¤ãã¨æãã è¦æ¨ã¨ãã¦ã¯ãåé ã®ï¼ç« ããã³ï¼ç« ã§è¿°ã¹ããã¦ããã颿°åããã°ã©ãã³ã°ãåªãã¦ããã®ã¯ãé«é颿°ã¨é å»¶è©ä¾¡ã¨ãããã¢ã¸ã¥ã¼ã«å士ãè²¼ãåãããå¼·åãªãç³ããæã£ã¦ããããã ãã¨ãã話ãã»ã¼å ¨ã¦ã§ã以éã¯ãããå ·ä½ä¾ã«åºã¥ãã¦èª¬æããæ§æã«ãªã£ã¦ããããã ããã®å ·ä½ä¾ã¨ãã¦ãæ°å¤è¨ç®ã¢ã«ã´ãªãºã ããããã²ã¼ã ç¨äººå·¥ç¥è½ã¢ã«ã´ãªãºã ãããã®è©±ãå»¶ã ã¨ç¶ããããããã³ã¼ãä¾ã Haskell ã®å ç¥ã«ããã
ã¡ãã£ã¨ã§ãJava7ãªAndroidãæ°æã¡ããããã°ã©ãã³ã°ãããã Javaã£ã½ã(?)ã¨ãããããã¤ã¤ãã¢ãã³ãªãã©ãã¤ã ãåãå ¥ãããã¦ããScalaã羨ã¾ããè¦ããã®ã§ãScalaã£ã½ãæ¸ãããã¨ããæå¿ããæ¸ãã¦ãã¾ã ãµã³ãã«ã³ã¼ãã§ã¯ç´é¢ã®é½åä¸ãretrolambdaã§lambdaå¼ä½¿ã£ã¦ãã¾ã Scalaã®ç¾¨ã¾ããã¨ãã æããã°ããªãç¡ãã§ããã以ä¸ã¨ãã¾ã 颿°åããã°ã©ãã³ã° å¼·åãªå¼ 颿°åããã°ã©ãã³ã°ã£ã½ã ããã«ã¤ãã¦ã¯Roppongi.aar #2 - connpassã§ç§ãçºè¡¨ããå 容ããã¼ã¹ã¨ãªã£ã¦ãã¾ã OOãªjavaã§ç¡çãã¦é¢æ°åããã°ã©ãã³ã°ãç®æãã®ã§ã¯ãªãã颿°åããã°ã©ãã³ã°ã®ä¸ã§ãã¢ããã¨ãããã便å©ãªãã¼ã¿æ§é ã便å©ã«ä½¿ããããã¨ãã£ãç¨åº¦ã®ãã®ã§ã ããã§ãAndroidã§ãã¢ããå®è£ ãã¦ä½¿ãã°æ°æã¡ããããããªãããã¨ãããã¨
ããã ãã¶åãããã§ã«ç§ã¯ã¯ãã¼ã¸ã£ã使ã£ã¦ãã¾ããä½¿ãæ¹ãå¦ã³ã¾ããããå®éã«ã¯ãã¼ã¸ã£ãã©ãæ©è½ããã®ããã¾ãã使ãã¨é ããã¨ããã§å®éã«ä½ãèµ·ããã®ããæç¢ºã«çè§£ãã¦ããã¨ã¯è¨ãã¾ããã§ããããããããã¯ãã¼ã¸ã£ã¨ã¯ä¸ä½ä½ãªã®ã§ããããã ã¦ã£ãããã£ã¢ ã¯ãã¾ãå½¹ã«ç«ã¡ã¾ãããã¯ãã¼ã¸ã£ã¯ãã¤çæããããã¤åé¤ãããã®ã§ãããããã©ã®ããã«å®è£ ãããã¹ããªã®ã§ããããã "use strict"; var myClosure = (function outerFunction() { var hidden = 1; return { inc: function innerFunction() { return hidden++; } }; }()); myClosure.inc(); // returns 1 myClosure.inc(); // returns 2 myClos
è¨äºã®å 容ã«ä¸åºåãã¤ããã®ã§ãæ¼ç¿ã«å ãã¦æ¬ã³ã©ã ãæããã¨ã¨ãã¾ãããä»ã¾ã§ã¯Pythonããé çªã«å½ä»¤ã並ã¹ã¦å¶å¾¡ãããæç¶ãåè¨èªãã¨ãã¦ä½¿ã£ã¦ãã¾ãããã以å¾ã¯ããªãã¸ã§ã¯ãæåè¨èªãã¨ãã¦ä½¿ãã¯ããã¾ãã ãªãã¸ã§ã¯ãæååè¨èªã¨ã¯ãªãããã¨ããè©±ã¯æ¬¡å以éã«è²ããä»åã¯æç¶ãåè¨èªããªãã¸ã§ã¯ãåæåè¨èªã«ä¸¦ãã§ãã使ãããã颿°åè¨èªãã«ã¤ãã¦åãæ±ãããã¨æãã¾ãã Pythonã颿°åè¨èªã®ææ³ãä¸é¨åãè¾¼ãã§ããã®ã§ã颿°åãã©ã®ãããªãã®ãå¦ã¶ãã¨ã§ãæ°ããã颿°åã«è¿ãPythonã®ææ³ããçè§£ãããããªãã§ããããã¾ããPythonã«éãããã¾ãã¾ãªè¨èªã§ã颿°åã®ã¡ãªããããå¼·ãæèãã¦èªåã®ã³ã¼ãã£ã³ã°ã«ã«ã¼ã«ã課ããã¨ã§ãã³ã¼ããããé ä¸ãªãã®ã¨ãªãããããã¾ããã ãããã«ããã颿°åãç¥ã£ã¦æãããã¨ã¯ãªãã¨æãã¾ãã®ã§ãæ°è»½ã«èªãã§ããã ããã幸ãã§
ã¯ããã« ä»æ¥ãã£ãå¢ç°ããã®DDD Allianceã®3é±é£ç¶DDDã®è©±ãèãã¦ããæãæå¾ã®è³ªçå¿çã§ã ãScalaãHaskellãªããã®é¢æ°åçãªèãæ¹ãé©å¿ã§ããããããªããï¼ã ã¨ãã質åãè´è¬è ã®æ¹ããä¸ãã£ãã®ã§ããã å¢ç°ããçã«ã¯ãã¾ã ææ¦ç試ã¿ã®åãåºãªããã¨ããåçããã£ãã®ã§ã Scalaã§DDDã2å¹´è¿ããã£ã¦ããè ã¨ãã¦ãããã¯å½¹ç«ã¤ããã¨ããææ³ãç´¹ä»ãããã¨æãã¾ãã æ£ç´ãªè©±ãDDDã颿°åããã°ã©ãã³ã°ãå¦ã¶ã®ã«æ ¹æ°ã®ããé£ããæ¦å¿µã«ããããããã ããºã¯ã¼ãåãã¦ããããªäººãéãæå³ã§ä½¿ãããã«ãªã£ã¦ãã¾ã£ãã®ã§ã æ£ç´æè¿ããããè©±ãæ¸ãããã¨æããªããªã£ã¦ãã¾ã£ããã ã¤ã¹ã©ã ã®ã ã¸ã£ã¼ããã£ã¼ã³ã¨ååè»ã®ä¸¡è»ã®åã§æ£ç¾©ã®å®ç¾©ã«ã¤ãã¦æ¼èª¬ãããã¨ã« è¿ããã®ãããã¨æãã®ã§ãæ°ã¯é²ã¾ãªããªããããå½¹ç«ã¤ãã®ãç´¹ä»ãããã¨æãã¾ãã ã¾ãæåã«å
åç·¨ã§ã¯ãElmè¨èªã®åºç¤ã¨FRPã®ã¨ãã»ã³ã¹ã«ã¤ãã¦ã³ã¼ããéãã¦å¦ã³ã¾ãã å¾ç·¨ã§ã¯ãå®éã«Elmã使ã£ã¦ã¢ããªã±ã¼ã·ã§ã³ãä½ãæ¹æ³ã¨ããã®éã«éè¦ã«ãªãã¢ã¼ããã¯ãã£ãå¦ã³ã¾ãã ãªããå·çæç¹ã§ã®Elmã®ãã¼ã¸ã§ã³ã¯0.15.1ã§ãã æ³¨æï¼ Elmã¯ãã¼ã¸ã§ã³0.17ã§å¤§ããªå¤æ´ãããã¾ãããç¾å¨ã¯ã颿°åãªã¢ã¯ãã£ãããã°ã©ãã³ã°ãã®ããã®è¨èªã§ã¯ããã¾ããã åèï¼A Farewell to FRPï¼ããã° FRPï¼ ã¾ããè¨èªèªä½ã®ã·ã³ã¿ãã¯ã¹ãã©ã¤ãã©ãªã®APIã以åã¨ã¯å¤§ããå¤ãã£ã¦ãã¾ããããããElmãå§ããæ¹ã¯ãå¿ ãå ¬å¼ããã¥ã¡ã³ããåç §ãã¦ãã ããã å ¬å¼ã¬ã¤ã FRPã¨ã¯ä½ã ãªã¢ã¯ãã£ãããã°ã©ãã³ã°ã®ç´æçãªèª¬æã¨ãã¦ããæããããã®ããExcelã®ãããªè¡¨è¨ç®ã½ããã§ãã ä¾ãã°ãã»ã«ã®éã«C1 = A1 + B1ã¨ããé¢ä¿ãããã¨ãã¾ãã ãã®ããã«å®£
åé¡ã§ãã åé¡ï¼ãå¼ã³åºããã³ã«ã1,2,3,...ãè¿ããããªé¢æ° f(ã)ãå®ç¾©ããã f(); // 1 f(); // 2 f(); // 3 ãã®åé¡ãè§£ãã¾ãã§ããããï¼ æ®éã®é¢æ°ã§ã¯ãã§ããªãã¨æãã¾ãã ããããã¯ãã¼ã¸ã£ãã¨ããã®ã使ãã°ããã®ãããªãã¨ãã§ãã¾ãã ã¯ãã¼ã¸ã£ã£ã¦ä½ã ï¼ ãã¯ãã¼ã¸ã£ãã¨ããè¨èããããã°ã©ã ã®æ¬ããµã¤ãã§ç®ã«ãããã¨ãããã¾ãããã ç§ãæåã«è¦ãã®ã¯ç¶ã»åãã¦ã®Perl æ¹è¨çï¼ã¢ã«ãã«æ¬ï¼ã§ããã ã¾ã£ããçè§£ã§ãã¾ããã§ããã ãã®å¾ã404ãBlog not foundãnaoyaããã®ããã°ãªã©ã§ãã¯ãã¼ã¸ã£ãã¨ããåèªãç®ã«ãã¾ããã ãã¯ããã¾ã£ããåããã¾ããã§ããã ã¨ã©ãã®ä¸æã¯Wikipediaã®è§£èª¬è¨äºã ã¯ãã¼ã¸ã£ (ã¯ãã¼ã¸ã£ã¼ãClosure) ã¯ãããã°ã©ãã³ã°è¨èªã«ããã¦å¼æ°ä»¥å¤ã®å¤æ°ãå®è¡æã®ç°å¢
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}