2009-12-01ãã1ã¶æéã®è¨äºä¸è¦§
ãCatyã®æ°ã¹ãã¼ãè¨èªã¨åã·ã¹ãã ã®å¿ è¦æ§ãã§è¿°ã¹ãããã«ãCatyã®JSON-centricã¹ãã¼ãè¨èªæ§æã¯å¤æ´ããäºå®ã§ããæ°ããæ§æã®ä»æ§ã¯ã大éæã«ã§ã¯ããã¾ããããã¹ãã¼ãæ§æã®å¤æ´æ¡ï¼ã©ãï¼ãã«è¨ãã¦ããã¾ããæ°æ§æã®åºæ¬çãªã¢ã¤ãã£ã¢ã¯ãâ¦
ãè³ãããã«æ¸ããããã«ãæè¿æ¬¡ç·ãè³ããããã¦ããã¾ãããã£ããåªãããã£ã¦ãããããã«ãªã£ã¦ãæ°æã¡ããã§ãã次ç·ï¼ããã®ã¸ããªãããã§ãããç¶è¦ªï¼ããããã¼ãæ°æã¡ãããæ°æã¡ããã次ç·ï¼ããã£ãç¶è¦ªï¼ãâ¦ã次ç·ï¼ãããã¯ã£ãç¶è¦ªï¼ãâ¦
ã¢ã¬ãã¯ã¹ãã¾ãæ»ã«ããã«ãªã£ã¦ãããä»åã¯ç«ã¡ç´ããé ãã大ä¸å¤«ãï¼ ã¢ã¬ãã¯ã¹ã液ä½è¥æã¨åã足ãã¦ãã£ããã¯ãå æ°ã«ãªãã¢ã¬ãã¯ã¹ï¼ã£ã¦ãã»ã£ããããã¦æ»ã«ããã«ãã¦ããã®ã¯åã®è²¬ä»»ã ãããããªãã¢ã¬ãã¯ã¹ï¼ã
Catyã®ã³ã³ã½ã¼ã«ã·ã§ã«ã¯ãååã®éãã³ã³ã½ã¼ã«ã¦ã£ã³ãã¦ã§åãã®ã§ããã°ãã使ã£ã¦ããã°ãããã³ãããã³ã³ã½ã¼ã«ã¦ã£ã³ãã¦ã®ä¸çªä¸ã«éãã¦ãã¾ãã¾ããç»é¢ã¯ãªã¢ãã¦ãã«ã¼ã½ã«ã¨ããã³ãããæä¸æ®µã«æã£ã¦ãããã§ããããåã®ãã¨ãã¸ã¤ãµãã â¦
Kuwataããã¨æã¡åããã¦ãCatyã®ã¹ãã¼ãè¨èªã®æ§æãå¤æ´ãããã¨ã«ãã¾ãã*1ãããããã¿ã¤ãã»ãã§ã¤ãºã§ã¯ãä»æ§å¤æ´ãèºèºããªããã¨ããæ¹éã§ããã¨ã¯ãããã½ããã¦ã§ã¢ã®è¦æ¨¡ã大ãããªãã«ã¤ãã¦ãä»æ§å¤æ´ã«ä¼´ãªãKuwataããã®ä½æ¥è² æ ãå¢å¤§â¦
è·¯ä¸ã§ãé»è»ã®ãªãã§ã飲é£åºã§ãç·å¥³ã®ã«ããã«ãè«ï¼ãããï¼ãããã¦ããå ´é¢ã«ééãã¦ãã¾ããã¨ãããã¾ããããå¥ã«ç©æ¥µçã«èãããã¨ã¯æããªãã¦ããè¨ãäºãè¨èãè³ã«å ¥ã£ã¦ãã¾ããã¾ã£ããã®ä»äººäºã§ãã£ã¦ããããã§ã®è¨èãè¸ã«åºãã£ããâ¦
Catyã®æåããã®æ¹éã¨ãã¦ããURLã®æ¸ãæãããããã³ã°ã¯ä¸åããªããã¨ããã®ãããã¾ããã©ããã¦ãã¨è¨ãã¨ãæ¸ãæãï¼ãããã³ã°ãããã¨ãWebãµã¤ãã®ã³ã³ãã³ãã¨ãã®é ç½®ããè¨å®ãã¡ã¤ã«ï¼ããã°ã©ã ãã¸ãã¯ï¼ãã¼ã¿ãã¼ã¹ãªã©ã®ãªãã«é ãã¦â¦
ãMercurialããããªãã¨ãç¥ããªãã£ãã®ï¼ï¼èªåãã·ãªã¼ãºç¬¬4å¼¾ï¼ã¤ãã»ã©ã®ãã®ãï¼ï¼ ãã«ããã¼ï¼ 使ã£ã¦åãã£ã Mercurial 㨠Bitbucket ã®ä¾¿å©ã - æªå±±æ£å¹¸ã®ããã¤ã©é£¼è²è¨ åæ£ãã¼ã¸ã§ã³ç®¡çç³»Mercurial ãããªãã¨ãç¥ããªãã£ãã®ï¼ï¼èªå - â¦
æ¨æ¥ï¼ ãã¯ã¼ã«ãªURIã¯ãæ¡å¼µåããã¼ãã ããã¨ãè¨ããããã ããããã®ãã¡ã©ã·ã§ãã¼ã«ãæ¸ããªããã ãã©ã·ã§ãã¼ã«ãã£ã¦è¨èããåã¯å²ã¨ãã使ããã ãã©ãããã¾ãä¸è¬çãããªãããªãã¨èª¿ã¹ã¦ã¿ã¾ããã ã©ã·ã§ãã¼ã«ã§æ¤ç´¢ - http://www.googlâ¦
æ¶å¤±ããCatyã®ãã¥ã¼ããªã¢ã«ææ¸ãåç¾ãããã¨ãã¦ããã®ã§ãããããããä½æ¥ã¯ãªããªãã«æ°åãçãä¸ãããªããªã¼ãã¨ãããããå ¬éæ¸ã¿ã®ææ¸ã Catyãªãªã¼ã¹5ï¼ãã¼ã¸ã§ã³ Proto1-2.0.1ï¼åãã«æ¸ãæãã¾ããã http://bitbucket.org/project_catyâ¦
Caty/Python Prototype-1 ã® 2.0.1 ããªãªã¼ã¹ãã¾ããããã¯ã2.0.0 ã®ãã°ãã£ãã¯ã¹çã§ããæ©è½çã«ã¯ä½ãå¤ãã£ã¦ãã¾ããã2.0.* ã«ã¤ãã¦ã¯ï¼ http://d.hatena.ne.jp/m-hiyama/20091212/1260592372
åä¾ã¨ä¸ç·ã«è¦³ãæ ç»ã§ããã¯ãµè¨ãã®ãè¸é¢¨åãã¤ã¤ããã¾ããï¼ ã大æªç£ããã« ã¦ã«ãã©éæ²³ä¼èª¬ The MOVIEãã観ã¦ã¾ããã¾ããã次ç·ã¨ãæµå½¹ã«æªã®ã¦ã«ãã©ãã³ã»ããªã¢ã«ã¤ãã®ãåºã¦ããã®ã§ããããããããã¡ãã£ã¯ãã£ã«å¼·ããã¤ãããæ£ç¾©ã®ã¦â¦
Caty/Python Prototype-1 ã® 2.0.0 ããªãªã¼ã¹ãã¾ããï¼ç¾å¨ï¼12æ15æ¥ä»¥éï¼ããã°ãã£ãã¯ã¹çã§ãã 2.0.1 ã®ã¿ãã¦ã³ãã¼ãã§ãã¾ããï¼ ä½¿ããªããªã£ãæ©è½ï¼ããããç¥ããªãããæ¹åããã代æ¿ãããã¯ã 追å ãããç®çæ©è½ï¼çµã¿è¾¼ã¿ã³ãã³ã tranâ¦
analyze ã analize ã¨typoããã¨ã¨ã©ããã¨ã«ãªã*1ãã¨ãä»æ¥ã¯ããã¦ç¥ã£ãã *1:è±è¾é analize
ã¨ãããæã£ãããã§ãããã£ã¨ãã主ããè¦å ã¯åãã¢ãã®æ´çãå ¨ç¶ã§ããªãããã§ããããä»åãæ©æ¢°ãã¯ã©ãã·ã¥ãããã§ã使ã£ã¦ããã½ããã¦ã§ã¢ã¨ãããã¤ã¹ãã©ã¤ãã¨ãå ¥ãç´ããã¨æã£ããã©ãCDãè¦ã¤ãããªãã®ãããããã¨ãã¦å¤§äºã«ä¿ç®¡ãã¨â¦
ãã¤ã使ã£ã¦ããã³ã³ãã¥ã¼ã¿ãã¯ã©ãã·ã¥ãã¦Catyã®ãã¥ã¼ããªã¢ã«ãæ¶å¤±ãã¡ãã£ã¨ã·ã§ãã¯ãä¸éã§ãbitbucketã«pushãã¦ãããããã£ããã¨ããã®ãæè¨ãã½ããã¦ã§ã¢ã ãããªãªã¼ã¹ãã¦ã説æã®ææ¸ã®ã»ãã¯å¾è¿½ããã£ã¦ãã¨ã«ãªãããããã¾ãããã§â¦
ãã¤ã使ã£ã¦ããPCããéä»ããã¼ãããªãã®ã ãããããããããªããã»ã¨ãã©ä½¿ã£ã¦ãªãã£ãæ©æ¢°ã§ã¨ãããããã®ãã§ã¾ããæå¾ã®ãã«ããã¯ã¢ããã¯11æ22æ¥ããã®éã§å¤±ããããã®ãããããããã¢ãã©ã¡ã¿ãã§ããç°å¢ã®åè¨å®ããã£ãã大å¤ãä»æ¥ã¯â¦
次ã®2ã¤ã®è¨äºã®ç¶ãï¼ JavaScriptã§å®è£ ããããç°¡åãªä»®æ³æ©æ¢°RAC0ï¼Rudimentary Arithmetic Calculator Level-0ï¼ã«å¯¾ãã¦ãé«ç´è¨èªã¨ãã®å¦çç³»ãä½ãã¾ããããã¨ããã·ãªã¼ãºã§ãã JavaScriptã§ä»®æ³æ©æ¢°ã®åå¼·ããã¾ããã JavaScriptã§è¨èªå¦çç³»ã®â¦
次ç·ï¼ããã¨ããããæè¿ãèªåã¯ãªããã«ãªã£ããªã¼ãã£ã¦æããã¨ããï¼ãç¶è¦ªï¼ããã£ãæè¿ï¼ ãã®ãããã¨ãããæè¿ãããªãã¦ãºã¼ã¼ãã¨æãããªãããªã®ã次ç·ï¼ãã§ãããããå¤ãã£ããªãã¨ãããã§ãããç¶è¦ªï¼ãããã¯ãããã©ãªã¼ãããªããã«â¦
æ¦å¿µãææ³ãã¨ãããã大ã¥ãã¿ã«ç解ãããã¨ã¯å¤§äºã§ããæåããç´°é¨ã«ãã ããã®ã¯å¾çã¨ã¯è¨ãã¾ãããæ¢ã«ç¥ã£ã¦ããäºã¨ã®é¡ä¼¼ã対æ¯ãéãã¦ææ¡ããã®ãå¹æãããã¨æãã¾ããããã§ããã®ã§ããããã¾ã§ã¯ããã®ã§ããã§ãããã»ãã¨ã«å°ããªã¼â¦
Catyãªãªã¼ã¹4ã®ç¢ºèªã¯ããã¥ã¼ããªã¢ã«æ¸ããªãããã£ã¦ãã¾ããåã¯æç« æ¸ãã®è¦æã ã¨ã¯æã£ã¦ãªããã©ããã¥ã¼ããªã¢ã«ã¯é£ãããªã¼ããªãã¹ãæ©ãã«ãªãªã¼ã¹ãã¹ãä½æ¥ãã¾ããã©ãï¼è °ãã¤ãã¼ï¼ããããããã¨ãªã®ã§ããªãªã¼ã¹4ã¯2,3æ¥ã4,5æ¥ãå ã§â¦
ãªãããã¾ã¼ãã®ãã¯ãªè °é¡ä¼¼çç¶ã§ãé常ã«ã¤ãã¼ã¼ã¨æã£ã¦ããã§ããã©ããããã¡ããã¨è¨é²ãã¦ããããè¨é²ã¯å½¹ã«ç«ã¤ãããªãã¡ãã£ã¨ããããããªãã¨æã£ãã®ã¯åæã®å¤ããããããæ¨æ¥ã¯ããæããã«çãã£ããä»åã¯è骨ããå³ã®ãã«ãã©ã¤ã³é¨â¦
ä»é±ä¸ã¯ç¡çã ãªã¼ãæ¥é±ã«ã¯ãªãã¨ããäºå®ã®æ©è½ãæã£ã¦ãããï¼åãã¦ããããã§ãã¯ããã ãã§ããã ãã ãã¨æéã«ãªã£ã¦ãã¾ãããããããã¨ããæ¹æ³è«ãå¿ è¦ããããã¾ãããã ãã ãã«èãããããªãªã¼ã¹4ã®ç®çã¯ãWebãã©ã¼ã å¦çã®å ¥ãå£ãæ â¦
JavaScriptã§ã¯ã©ã¹ãã©ããå®ç¾©ããã¨ãã次ã®ãããªæ¸ãæ¹ãããã¾ãã // ããã±ã¼ã¸ var shape = {}; // ã³ã³ã¹ãã©ã¯ã¿ shape.Point = function (x, y) { this.x = x; this.y = y; }; // ã¯ã©ã¹å¤æ°ãã¡ã½ãã shape.Point.prototype = { moveTo : funcâ¦
ãã³ãã¬ã¼ãã®ä¿®é£¾åï¼ã¢ãã£ãã¡ã¤ã¢ï¼ã¨ããã£ã«ã¿ã¼ã¨ãå¼ã°ããæ©æ§ã®è©³ç´°ä»æ§ãè©°ããªãã¾ã¾ã«ãªã£ã¦ãã§ãããCatyã¹ã¯ãªããã¨åãã¢ãã«ã§ããããã¨æãã¾ããã以ä¸ã®è¨è¿°ã¯å¤§ãã£ã±ãçµµç®ãè£ã£ã¦ãã ãã -- è²ä»ãçµµç®ã®ã¨ã¦ãè¯ãç·´ç¿åé¡ãâ¦
Catyã®ã³ãã³ã宣è¨ã¯æ¬¡ã®ãããªå½¢ããã¦ãã¾ã*1ã command foo :: X -> Y throws [E1, ..., Ek] reads [a1, ..., ap] updates [b1, ..., bq] uses [c1, ..., cr] refers example:impl;X, Y, E1, ..., Ek ã¯åã§ãããa1, ..., ap, b1, ..., bq, c1, ..., câ¦
Catyãã¥ã¼ããªã¢ã«ã§ããèªãã§ã¿ã¦ãã ããã ãã³ãã¬ã¼ãã使ã£ã¦ã¿ãã Catyã£ã¦ã°ç°¡åã§ããã
次ç·ï¼ããã¨ããããè³å¢ããã¾ã£ã¦ãããã¼ãç¶è¦ªï¼ããããã次ç·ï¼ãè³ãããã¦ãããããç¶è¦ªï¼ããã¼ããããã¨ãããã£ã¦ããã¼ã次ç·ï¼ã⦠â¦(é»ã ã¨)ãç¶è¦ªï¼ãã¤ãããã¤ãã¼ãã次ç·ï¼ã⦠â¦(é»ã ã¨)ãç¶è¦ªï¼ããã¼ããã¹ãã¼ããã次ç·ï¼ã⦠â¦ãç¶â¦
ããã¯ã¹ï¼ã¯ã¤ã¤ã¼å³ããããã¯ã¹ããªã³ã°å³ã«ããã¦ãã¯ã¤ã¤ã¼ï¼ã¹ããªã³ã°ï¼ã®ä¸¦ç½®ã¯ã¢ãã¤ãç©ã表ãã¾ããã¢ãã¤ãç©ã2種é¡ãä¾ãã°Ãã¨ï¼ãããã¨ãåã«ä¸¦ç½®ããã ãã§ã¯ã©ã£ã¡ã®ç©ãåããã¾ãããããã§ãã¯ã¤ã¤ã¼éã®å¸¯ç¶é åã«è²ãå¡ã£ã¦åºå¥ããâ¦
ããç¨åº¦ã®çµé¨ãç©ãã æè¡è ï¼ããã°ã©ãã§ãããã©ãããå¤æãããã¨ããããªãã¸ã§ã³ç®¡çã·ã¹ãã ãæ®éã«ä½¿ãããã©ããï¼ãã¨ããåºæºã¯ãã£ããæå¹ãªæ°ãããã以ä¸ã®ä½¿ãæ¹ã¯ãã使ã£ã¦ã¿ãã°ä¾¿å©ããåãããããã¨ãè¨ã£ã¦ãªãã説æãããªãã£â¦