ã¨ã³ãã°å¹ç
æ¨æ¥ã®ç¶ã
Mæ°ãã¨ã³ãã°å¹çãªãè¨èãä½ã£ã¦ãã¾ã£ãã®ã§ã
ã¡ãã£ã¨ããã«ã¤ãã¦ã話ãã¾ãããã
ã¨ã³ãã°å¹çã¨ããã®ã¯ã¡ãã£ã¨ä¸èªç¶ãªæãã®ããè¨èã§ããã
æå³ã¯ãã®ã¾ã¾ããã°ãä»è¾¼ãå¹çã®ãã¨ã§ãã
ãã¡ãããã¨ã³ãã°å¹çã¯ä½ãæ¹ãè¯ãã®ã§ãã
-
-
-
- -
-
-
ICFPã®çµæãçºè¡¨ãããã
ä»å¹´ãHaskellã¯ä¸ä½ã
ããã¯åããç´ããHaskellãåªç§ãªè¨èªã§ãããã¨ã示ãã¦ããã®ã ã
(Haskellããããã®ããHaskellã使ããããªäººããããã®ãï¼
ç¡è«åè
ã§ãããã ã£ã¦ãããããªãã¨ä»è¨èªã¦ã¼ã¶ãã¢ã¬ã¨ãããã¨ã«ãªã£ã¦ãã¾ã)ã
ã§ã¯ãªãHaskellã¯åªç§ã§ããã®ãã
é
延è©ä¾¡ãåæ¨è«ããã¿ã¼ã³ããããã¢ãããªã©ã
Haskellãç¹å¾´ä»ãããã¼ã¯ã¼ãã¯ããã¤ããããã
ä»åã¯ããããããããããé¨å以å¤ã§ã®åªä½æ§ã
æµ®ã彫ãã¨ãªãçµæã«ãªã£ããããªæ°ãããã
ã¨ããã®ããã¾ãã¯ãã¡ãã御覧é ãããã
http://icfpc.plt-scheme.org/icfpc2005-talk.pdf
ãã®è³æã®59ãã¼ã¸ããã«ä»åã®Submissionã«ä½¿ããã
è¨èªã®çµ±è¨ã示ããã¦ããã
æåã¯160ãã¾ãã®æåºããã£ã¦ããããããªè¨èªãç¨ãããã¦ãã¦
ã«ã©ãã«ãªã®ãåããã ããã
次ã®ãã¼ã¸(60ãã¼ã¸)ãNo failure in regular season ã¨ãããã
ããã¯ã¸ã£ãã¸ã®Cop&Robberã¨æ¦ãããã¨ãã«"ãã°ãåºãªãã£ã"ããã°ã©ã ã§ããã
(ã¡ãªã¿ã«ãä»åã®ã·ã¹ãã ãç°¡åã«èª¬æãã¦ããã¨ã
æ稿ãããããã°ã©ã ã¯ã¾ãããç¨åº¦ã®å¼·ãã®ã¸ã£ãã¸ã®ããã°ã©ã ã¨å¯¾æ¦ãããããã
ãã®ã¸ã£ãã¸ããã°ã©ã ã«åã¦ãªããã°ããã§çµäºã
åã¦ã°ãã¬ã¤ãªãã«é²åºãæ°ç¾åã®ããããçµã¦åè
ã決å®ããã)
è¦ã¦åããã¨ããããããªãä¸å²è¿ãã®ããã°ã©ã ãæ»ãã§ããã
ãªãã¨ãä¸å²ãã®ããã°ã©ã ããã£ã6åã®è©¦åããã¾ã¨ãã«å®è¡ã§ããªãã£ãã®ã§ããã
ãããããããããªè¨èªã§5å²ãã7å²å¼·ã®çåçã§ããã
Cã®çåçãèããä½ãã®ãé¤ãã¨ã©ã£ããã©ã£ããã¨ããæããã
ããã¦ã次ã®ãã¼ã¸(61ãã¼ã¸)ãè¦ã¦é ãããã
ä¸æ°ã«çåæ°ãæ¸ã£ã¦ãããããã¯ã¸ã£ãã¸ããã°ã©ã ã«åã¦ãªãã£ã
ããã°ã©ã ãæé¤ãããçµæã§ããã
Perlãå
¨æ»
ããã®ä»ãããªãå°ãªãã
ãããªä¸ã§Haskellã®çåçã®é«ããéç«ã£ã¦ããã
次ã®ãã¼ã¸(62ãã¼ã¸)ã¯æçµçã«pre-twistã§çãæ®ã£ãããã°ã©ã ã§ããã
ãã¬ã¤ãªãã§6試åã»ã©ãããããçµæã ã
C++ãã¤ãã«ä¸ãã¼ã ã«ããã£ãã¾ã§7ãã¼ã ãã£ãã®ã§ã
C++ãã°ããããã¨ãã£ãã¨ãããã
OcamlãJavaãHaskellãã¾ã ã¾ã¨ãã¨ãããæ°ãæ®ãã¦ããã
ãã¡ãããããã¯Haskellã ã
ããã¾ã§ãpre-twistã§ããã
以éãtwistãã¼ã¸ã§ã³ã®çµæã
63ãã¼ã¸ã«ã¯twistãã¼ã¸ã§ã³ãæåºãããã¼ã ã示ããã¦ããã
twistã«ããã¦ã¯ã²ã¼ã å
容ãèããå¤åã
å¶éæéã24æéãããªããã¨ããã®ãèæ
®ããªããã°ãªããªãã
ã¤ã¾ããtwistã潤æ»ã«æåºã§ããã¨ãããã¨ã¯ã
ä»åã®ãã¼ãã§ããre-hackã潤æ»ã«è¡ããã¨ãããã¨ã«ãªãã
ããã§ã¯C++ãJavaãPerlãã¨ã¦ãä½ãæ°åã示ãã¦ããã
Haskellã¯ããã§ãä¸çªã§ããã
(ã¡ãªã¿ã«ãããåãã¦ã¹ã©ã¤ãã®æ¨ªã®ã³ã¡ã³ãã«ã
åå©ç¨å¯è½ãªã³ã¼ããæ¸ããããè¨èªã§ããHaskellãéçºãã¦ãããã¨ã
ããã³åå©ç¨å¯è½æ§ã«éããããã¦ãããã¨ã«ã¤ãã¦ã
Haskellã³ãã¥ããã£ãè¤ã称ããï¼ ã®ãããªãã¨ãæ¸ãã¦ããã
ã¤ã¾ããHaskellãåå©ç¨æ§ãé«ãã³ã¼ãã®æ¸ããè¨èªã§ããã¨å
¬ã«èªãããã¦ãã)
ããã¦æ¬¡(64ãã¼ã¸)ãtwistã®regular season ã§ãã°ããªãã£ãããã°ã©ã ã
ãã®ãããããHaskellãèããé«ãå¤ã示ãå§ããã
次(65ãã¼ã¸)ãtwistã®ã¸ã£ãã¸ã«æã¡åã£ãããã°ã©ã ã
Haskell以å¤ã®ããã°ã©ã ãæ²æ¨ãªæ°åã«ãªãä¸ã
Cããªããé«ãæ°åã示ãã¦ãããä½ã§ã ãããã
ããã¦ã次66ãã¼ã¸ãæçµçµæã
twistã§ã¸ã£ãã¸ã«ãåã£ã¦ããã¬ã¤ãªãã§ãã°ãåºãªãã£ãããã°ã©ã ã§ããã
twistã®ãã¬ã¤ãªãã¯350試åããã®ã§ãpre-twistãããæ¡ä»¶ã¯å³ããã
è¦ã¦åããã¨ããããªãã¨9ãã¼ã ãããªãã
ãã¡ä¸ãã¼ã ãHaskellããã¨ã¯
C++,Ocaml,Python,Java,C,ãã®ä»(ã¨ããããDylan)ãã²ã¨ã¤ãã¤ã§ããã
(9ãã¼ã ä¸3ãã¼ã ãHaskellããã£ãã¨ããã®ã¯ç¹çã«ä¾¡ãã)
ã¤ã¾ããä»åã¯ã¾ã¨ããªããã°ã©ã ãæåºã§ãããã¼ã ã
ãã£ãã®9ãã¼ã ãããªãã£ãã¨ãããã¨ã ã
ãã¡ã®ãã¼ã ã¯ãã®ä¸ã§3ä½ã¨ãããã¨ã«ãªãã
ãã¦ãããã§èããªãã¦ã¯ãããªãã®ã¯ã
æ£ããããã°ã©ã ãæ¸ãã¨ããã®ãããã«é£ãããã¨ããã¨ãããã¨ã ã
ä»åã¯ããã«å ãã¸ã£ãã¸ã«åããã°ãªããªãã®ã§ã
ä¸æ¦ã«ã¯è¨ããªãããã¾ããããã¾ã§ã¾ã¨ãã«åãããã°ã©ã ã
å°ãªããã®ã ã¨ã¯æã£ã¦ããªãã£ãã
ãã¨ãã°å»å¹´ã®ãããªå½¢å¼(ä»®æ³ãã·ã³ã«å¯¾ããããã°ã©ã ãæåº)ã ã¨
å¤å°ãã°ã£ã¦ãã¦ãå¤±æ ¼ã«ã¯ãªããªãã®ã§ã
ä»åã®ããã«ããã°ã©ã ãã®ãã®ãæåºããå½¢ã ã¨
ä¸ã®ããã°ã©ã ã«ããã«ãã°ãå¤ãã®ãã¨ãããã¨ãé¡èã«ç¾ããã®ã ããã
ã¨ãããããã¡ã®ãã¼ã ã¯å¹¾åº¦ã®ãããã«ãä¸åº¦ããã¨ããã°ã£ã¦ããªãã
ç¹ã«æ°ãã¤ããããã§ã¯ãªãã®ã§ãä½ãæèããã«å
ç¢ãªã³ã¼ããæ¸ããã¨ãããã¨ã«ãªãã
ãããè¨èªã®åã§ãªãã¦ãªãã§ãããï¼
ããã§ã¨ã³ãã°å¹çã¨ããè¨èãèããã
ä»äºéã«å¯¾ãã¦ãã°ãä»è¾¼ãå¹çã§ããããã
ãã¡ããä½ãã«è¶ãããã¨ã¯ç¡ãã
Haskellã¯ãã®ã¨ã³ãã°å¹çãä½ãã®ã§ã¯ãªããã¨ããã®ã§ããã
ã¡ãªã¿ã«ãã¨ã³ãã°å¹çã¨ãããã°å¹çã¯ç¸åããè¨èã§ç¡ããã°
ç´æ¥é¢ä¿ã®ããæ¦å¿µã§ããªãã
ãããã°å¹çã¯ãã§ã«ä»è¾¼ãã§ãã¾ã£ããã°ãå¦ä½ã«çºè¦ãä¿®æ£ãããããã
ã¨ã³ãã°å¹çã¯å¦ä½ã«ãã°ãããã¿ãããããªã®ã ã
(ã¡ãªã¿ã«å
ã®ã¹ã©ã¤ãã§ã¯Cè¨èªã¯ãã°ãè¦ã¤ãã«ããã
å¾ã«ãªã£ã¦ãããããçºç¾ããã®ã§ã¯ãªããã¨ææããã¦ãã)
Haskellã®ã¨ã³ãã°å¹çãä½ãã®ã¯å
ã®çµ±è¨ãããæããã§ããã
(ã¹ã©ã¤ãã«ããã¨åå©ç¨å¹çãé«ã)
ã§ã¯ãªãä½ãã®ãï¼
ç´ç²é¢æ°åè¨èªããã«å¤ã®æ¸ãæããç¡ãã
å¼·åãªåã·ã¹ãã ãã³ã³ãã¤ã«æã«ãã°ãè¦ã¤ãã¦ãããã
ãªã©ããã®ãããã®è§£çã§ã¯ãªããããã¨æã£ã¦ããã
ãããã¯ã³ã¼ãã£ã³ã°ã¹ã¿ã¤ã«ã«ãããHaskellã使ã£ã¦ããã ãã§
åããããæ©æµãªã®ã§ãããã ãã§ä»ã®è¨èªããããã°ãåºã«ããã¯ãã ã
å®éã®ã¨ããæè¦ã¨ãã¦ã¯ãã®ããã«æãã
ããããããã§ãä»åã®çµæã¨ãã¦ã
ãã¯ãHaskellã§æ¸ããããã°ã©ã ã¯ãã°ãåºã«ãããã¨ãããã ããã
ãã¨ãç°¡åã«å
ç¢ãªã³ã¼ããæ¸ãããããã¯å¤§å¤ãªé·æãªã¯ããªã®ã§ã
ããããã¢ãã¼ã«ãã¦ãã£ã¦ãè¯ãã®ã§ã¯ãªããã¨æãã