ICFP Programming Contest 2010 åªå
Pure Pure Code ++ Language: C++, Haskell, Python ... are the programming languages of choice for discriminating hackers.
ä»å¹´ã®ICFP Programming Contestã«ã¦åªåãã¾ãããï¼ã³ã³ãã¹ãä¸ã®æ§å㯠http://d.hatena.ne.jp/tanakh/20100702#p1 ãã¡ãã«ããã¾ãï¼
ä¸æ¬¡ã½ã¼ã¹ï¼http://www.icfpcontest.org/2010/ï¼ã¯ã¾ã æ¥ã¦ãã¾ããããä»å¹´ã®ICFP@ãã«ãã¢ã¢ã«ã¦è¡¨å½°ããã¦ãã¾ããããã¡ãï¼http://twitpic.com/2swi5cï¼ã«è¨¼æ åçãã¢ãããã¼ãããã¦ãã¾ãã
Our Score: 13597.354 Our Solved: 3451 Our Cars: 72 >=5 users: 15 unsolved 3-4 users: 262 solved, 36 unsolved 2 users: 496 solved, 12 unsolved Monopoly: 253 unsolved 91% of the Market are belong to us
æçµçãªã¹ã³ã¢ã¯ãã®ãããªæãã§ãããç¹çãã¹ãã¯2 usersã®å æçã®é«ãã§ã508åä¸496åããã¡ã®ãã¼ã ã解ãã¦ãã¾ãããããããªãã¡ã¬ã³ã¹è§£çããããµã¤ãºãå°ãããã®ãååããããããããã ãã§250è¿ãå®æåå ¥ãããã¾ããããã¼ã¿ãåºã¦ããã¨ãã«ã¯ã¡ãã£ã¨ä¿¡ããããªãã¦ä½åº¦ã確ãããã®ã§ãããã©ãããééãã¯ãªãããã§ãããã©ããã¦ãããªã£ãã®ãã¯å½ã®æ¬äººã«ããããããã¾ããããã³ãã³ãã½ã«ããæ¹è¯ãã¦ããã®ãããã£ãã®ããªã¨æãã¾ããhttp://d.hatena.ne.jp/wata_orz/20100622/1277229671 ãããããã®ãããªè¢«å®³è ãããããä½ã£ã¦ãã¾ã£ãããããªããã¨æãã¾ããã§ãã責任ãã¨ã£ã¦åªåãã¦ãã¾ããï¼
æ¬å½ã«æ¬å½ã«ãã¨ã¦ãå¬ããã§ããåæã«ããã£ã¨åã¦ããã¨ããå®å µã®æ°æã¡ãããã¾ãã2004å¹´ã«ååå ãã¦ä»¥æ¥æ¯å¹´åå ãã¦ãã¦ãä»å¹´ã§7度ç®ã®åå ã§ããååå ã§ãããªã3ä½ã«ãªãï¼http://d.hatena.ne.jp/tanakh/20040926#p1ï¼ã次ã®å¹´ã§åãã3ä½ãªãããå ¥è³ãæãããï¼http://d.hatena.ne.jp/tanakh/20050930#p1ï¼ã¨ãã«ã¯ããªãã ãããããããªããã©ããã®ãã¡1ä½ã¯åãããã®ã ã¨æã£ã¦ãã¾ãããã¨ããããã®æ¬¡ã®å¹´ã¯äººæ°å¶éã«æ³£ããããã«æ¬¡ã®å¹´ã¯5ä½ã«å ¥ã£ããã®ã®ããã以éã¯å¹´ã é ä½ã¯å³è©ä¸ããã§ãããåã¦ãªãããããªããã¨å¹´ã è¡°ãè¡ãè³ã¿ããåããããã¦ãã¾ããã
ãããã諦ãããã®ã§ã¯ããã¾ãããããã£ã¨é å¼µã£ã¦ããã°å ±ããããã¨ãããããã§ããä»å¹´ã¯ãã¼ã ã¡ã¤ãã«æµã¾ãã¾ãããããã ãã®ã¡ã³ãã6人ãéã¾ãã°ãææ®ããåé§ãã¾ãï¼æ¹ãã¦ãã¼ã ã®çæ§ã«æè¬ãã¾ããã´ã ãã´ã ããã¼ã©ã®ä¸å¡ã«ãªãã¦æ¬å½ã«ããã£ãã§ãã
ãã¦ãæã ãDiscriminating Hackersã¨èªããããã¨åæã«ãæã ã®ä½¿ã£ãããã°ã©ãã³ã°è¨èªã«ã¯Discriminating Hackersã®é¸ã¶è¨èªã¨ãã¦ãä»å¹´ä¸å¹´éç¡å¶éã«å®£ä¼ãã権å©ãä¸ãããã¾ããä½ãé¸ã¶ã大å¤ã«æ©ã¿ã¾ããããããã«6人ãããã¨ãªããªãåæãå¾ããã¾ãããã¨ãããããç§ä»¥å¤ã«ç¹ã«é¸ã³ããè¨èªããã人ãããªãããã§ããç§ã¯æç¶Haskellãæ¨ãã¾ããããããã«ç§ãã使ã£ã¦ããªãè¨èªãé¸ã¶ã®ãæ°ãå¼ãã¾ããã¯ã¦ã¯ã¦ãä½æã¾ã§çµã£ã¦ã決ã¾ãããä¸æã¯éãåã£ã¦ï¼ï¼ï¼"crontab"ã«ããã¨ããæ¡ãæããã¾ããããæããã¦crontabã¯"ããã°ã©ãã³ã°è¨èª"ãªã®ããã¨ããããããã®è°è«ãããã¦ããã¯ãèªç²ãã¹ãã¨ãããã¨ã«ãªãã¾ãããcrontabãDiscriminating Hackersã®è¨èªã«ãªã£ã¦ãåã¶äººã ããããªãã§ããã
çµå±è¨èªé¸ã³ã¯è¡¨å½°å¼å½æ¥ã¾ã§ç¸ºãã¾ãããæçµçã«ã¯ã"ã²ã¨ã¤ã«é¸ã¹ãè¨èªã¯ãªã"ãå¼·ãã¦æãããªãã使ã£ãè¨èªã®ä¸ã§ãã¾ã¨ãã«ããã°ã©ãã³ã°ã«ç¨ãããã"C++, Haskell, Python"ã®3ã¤ãããã§ãããã¨ã®çµè«ã«è³ãã¾ããããããã®é çªã«ã¯æå³ããªããã¨ã注è¨ãã¦ããã¾ããåã«è¾æ¸é ã§ãã
C++ã¯ç¼ããªã¾ãã½ã«ãã«ç¨ãããã¾ãããç¼ããªã¾ãã½ã«ãã«æ±ããããã®ã¯ä»ã®å ¨ã¦ãå·®ãç½®ãã¦é度ã§ããé度以å¤ã«ä½ãå¿ è¦ãªãã®ã§C++ã§æ¸ããã¾ãããæ®æ®µãHaskellã§ãé«æ§è½ãªããã°ã©ã ãæ¸ããã¨ä¸»å¼µãã¦ããç§ã§ããããã®é¸æã¯ééã£ã¦ãã¾ãããä»ãªãã¬ç§ãæ¸ãããã®ã§ããC++ã§é«éãªããã°ã©ã ãæ¸ãã®ã¯å§åçã«ç°¡åã§ããæ®æ®µãªãã¨ããããæéã®éããã¦ããä¸ã§ã¯ããã¥ã¼ãã³ã°ã®æéãããããªãC++ããã¹ãã§ãã
Haskellã¯åè·¯è¨è¿°ã«ç¨ãããã¾ãããHaskellã使ãããã®ã¯ãåã«ç§ãæ¸ããããã¨ããçç±ä»¥å¤ã«ã¯ãªãããããã¾ããããLavaï¼http://hackage.haskell.org/package/xilinx-lavaï¼ãªã©ãæããã¾ã§ããªãããã®ãããªç¨éã«Haskellãé©ãã¦ãããã¨ã«ç°è«ã¯ãªãã§ããããéå§ãå¤æãã¾ã§ã«åè·¯ã¸ã§ãã¬ã¼ã¿ãåããã®ã¯Haskellã®ãããã ã¨æã£ã¦ãã¾ãããã®ä»ãHaskellã¯ä¸é¨ã®ç¹æ®ã½ã«ããªã©ãç§å°ç¨ã¹ã¯ãªããã£ã³ã°è¨èªã¨ãã¦åãã¦ããã¾ããã
Pythonã¯ãã®ä»ã»ã¼ãã¹ã¦ã®ç¨éã«ç¨ãããã¾ããã大ããã®ã¯ãCGIã¨ç¹æ®ã½ã«ãã§ãããããCGIã¯å¶ç´å¼ã®å¯è¦ååã³ãè¡å表è¨ã«ãããµããããããã°èç©ã¨ããªãéè¦ãªã¤ã³ãã©ã§ãããç¨æãããCGIã§ã¯ã解ããåé¡ãä½ã£ãè»ããåãããªããªãä»æ§ã§ããã®ã§ããã®ãããªã¤ã³ãã©ã¯ç¸ã®ä¸ã®åæã¡ã¨ãã¦ãã£ããã¨ãã¼ã ãæ¯ãã¦ããã¾ãããç¹æ®ã½ã«ãã¯ç¼ããªã¾ãã½ã«ãã§è§£ããªãã¿ã¤ãã®åé¡ã®ããªãã®é¨åãæ½°ãã¦ããã¾ãããã¾ãã«ã©ããæ¬ ãã¦ãä»åã®åªåã¯ãªãã£ãã§ãããã
ã¨ãã訳ã§ã"C++, Haskell, Python"ã§ãããããã®è¨èªã«é¢ãã¦ãä»å¹´ä¸æ¯ã¯ãããããä¸ç¨æãªçºè¨ã¯é¿ãã¦ããã ãããã«ãé¡ããããã¾ããå°¤ããä»åã®ICFPã³ã³ãã¹ãã«ããã¦ã1çªå¤ãã®ãã¼ã ã«ä½¿ç¨ãããè¨èªã¯Haskellã§ããã®æ¬¡ãC++ã§ããã®æ¬¡ãPythonã§ãã®ã§ãæã ã®é¸æã¯æãå¤ãã®äººã ã幸ãã«ãããã®ã ã¨èªè² ãã¦ããã¾ãããã ãï¼ç§ã«ã¯ãã®æ¨©å©ãããã¨æãã¾ãã®ã§ããããããC++ã®æªå£ãè¨ãã¾ããã¨æãã¾ããã¯ãããã¯ã
ãã¦ãICFPãªã®ã§ããã³ã³ãã¹ãã®å ¥è³è ã¯ICFPã«æå¾ ããã¾ããICFPã¨ããã®ã¯ãã®åã®éããé¢æ°ããã°ã©ãã³ã°ã«é¢ããå½éå¦ä¼ã§ãããã®åéã§ã¯æé«å³°ã«ä½ç½®ãã¦ããã¨æãã¾ããç§ãç 究ã®éã«é²ãã§ãããããããããè«æã®æ¹ã§åå ãã¦ããããããã¾ããããããªã£ã¦ããªãã®ã¯ãç§ã®æ æ°ã«ããã¨ããã§ã¯ããã¾ãããå¥ã®å ¥å£ããã¨ã¯ãããæ¹ãã¦ãã®ä¸ãè¦ãã¦ã¿ãã¨ãé¢ç½ããã§é¢ç½ããã§æãããªã£ã¦ãã¾ããè±èªãå ¨ãèãåããªãã®ã¨ãããããå 容ãç解åºæ¥ãªãã®ã¨ã§ãæ®ã©åãããªãã£ãã®ãæ²ããã£ãã§ããäºç¿ããã¦ããã°ããã£ãã¨æãã¿ã¾ãããã§ããæããã§ãä»æ¹ãç¡ãã®ã§ã復ç¿ã¯ãã£ãããããã¨æãã¾ãã
ICFPã«åå ã§ãã¦æ¬å½ã«ããã£ãã§ããã¨ãããã°æ¥ã å®ç©ã¨æ®ãããã¨ãè¯ãã¨ãããã¨ããç§ã®ä¸ã«ãç¥ç好å¥å¿ã®ãããã¨éäºå¿ãã¾ã æ®ã£ã¦ãããã¨ã確èªã§ãã¾ãããä¸ã®ä¸ã«ã¯ãããªã«é¢ç½ãã¦é£ãããã¨ãåãã¦ããã®ã«ããã£ãããªãã¦ãã¦ããããªãããã£ã¨åå¼·ããããããã¦ããã¤ãæ©ä¼ãããã°è«æã®æ¹ã§éãã¦ã¿ããã¨ããéæãæã¡ç¶ãã¦ãããã¨æãã¾ããã
ä½µè¨ã¤ãã³ãã®Haskell Symposiumã¨Haskell Implementors Workshopã«ãåå ãã¾ãããHaskell Symposiumã¯Haskellã«é¢ããç 究ã°ããã§ãç§ã«ãåããããããã®ãå¤ãã£ãã§ããHaskell Implementors Workshopã¯Haskellãåãå·»ãç¾ç¶ãããã¼ã«ãã§ã¤ã³ã®æ´åã®è©±ãªã©ãã¾ãã«Haskellã®ä»ãããã«ããã¨ãã£ãæãã§ã¨ã¦ãé¢ç½ãã£ãã§ããHaskellçéã§æåãªäººãå¢ããããã¦ãã¦ãããã£ãã§ããHackageã®è©±ãªã©ãçºè¡¨ãçµãã£ãå¾ã延ã ã¨è°è«ãç¶ãã¦ãèªåãè±èªãä¸èªç±ãªãæ±ãããªããæè¦ã®ä¸ã¤ãäºã¤è¨ãããã ãªãã¨æãã¨ãããã¾ãæããã¨æ²ããããã¿ä¸ãã¦ããããã¦ã
å½æã®æ§åã¯kinabaããã®ã¾ã¨ãï¼http://togetter.com/li/55345ï¼ã«ã¡ããã£ã¨è¼ãã¦ããã ãã¦ããã®ã§ããããããã°ãåç §ãã ãããç§ã®ã¯ã¨ããããICFPæ¬ç·¨ã®kinabaããã®ã¾ã¨ãã大å¤åèã«ãªãã¾ãã
ã¯ã¦ãã¦ãããããããã§ä»åã¯æ¬å½ã«ããçµé¨ãããã¦ãããã¾ããããã¼ã ã®çããã«æ¹ãã¦æè¬ããã®ãããªæ¥½ããã³ã³ãã¹ããéå¬ãã¦ããã ããã主å¬è ã®æ¹ã ã«ãæè¬ãé¡ããã°ãæ¥å¹´ãåªåãããã¨ãããããããæ¥å¹´ã®ICFPã¯æ±äº¬éå¬ã§ããçæ§æ¯éæ¯é奮ã£ã¦ãåå ãã