InfoQ Software Architects' Newsletter A monthly overview of things you need to know as an architect or aspiring architect. View an example
ããã¾ã§èå¯ãã¦ããã¯ãã¼ã¸ã£ã®ä»¶ã§ãããã¾ã ã¾ã é ã®ä¸ã§ã¯çºæ£ãã¦ããã®ã§ããã©ãä¸æ¦ãç°¡åã«ã¾ã¨ãã¦ããããã¨æãã¾ãã ãã æ¸ãæ£ãããã¦ããã ãã§ã¯æå³ãªã (ãããæå³ã¯ããã¨æã£ã¦ããã§ããã©ãèªå·±çç¾ã ã) ã§ããããã Rui ãããshiro ããã®ã³ã¡ã³ãã«å©ãããã¦ãä»ã§ã¯ã æç¶ãããã¡ã¼ã¹ãã¯ã©ã¹ãªãã¸ã§ã¯ãã¨ãã¦æ±ããã éçã¹ã³ã¼ããæã¤ã ç¡éã®ã¨ã¯ã¹ãã³ããä¿è¨¼ããã¦ããã ã®ä¸ã¤ã®åºç¤ãæããã¨ã§ãã¯ãã¼ã¸ã£ãå®ç¾ããã¦ããã¨èããã«è³ãã¾ããã Scheme 以å¤ã§ã¯ã©ããå¤ãã¾ããããã㨠Scheme ã«æ¼ãã¦ã¯ãä¸ã®ä»æ§ã«ç«èããå½¢ã§ã¯ãã¼ã¸ã£ãå®ç¾ããã¦ããã¨èãã¦å·®ãæ¯ããªãã¨æã£ã¦ãã¾ãã ãã ãè¨èªè¨è¨ã®æ¨ç§»ã¨ãã¦ã¯ãshiro ããããé ããã³ã¡ã³ãã§ç¤ºåããã¦ããæ§ã«ãåçã¹ã³ã¼ãã«æ¼ããç°å¢åé¡ (FUNARG problem) ã
http://martinfowler.com/bliki/Closure.html åçè¨èªã«èå³ãã§ã¦ããã¨ã ã¯ãã¼ã¸ã£ããããã¯ã¨å¼ã°ããæ¦å¿µã«åºä¼ãã¨æãã¾ãã C/C++/Java/C# ãªã©ã¯ãã¼ã¸ã£ãæããªãè¨èªãã使ç¨ã®æ¹ã¯ã ã©ããã£ããã®ãªã®ããåç¥ãªãããããã¾ããã ããã§ã¯ç°¡åã«ã¯ãã¼ã¸ã£ã«ã¤ãã¦èª¬æãã¾ãã ã¯ãã¼ã¸ã£ãæã£ãç´ æ´ãããè¨èªã使ã£ããã¨ããæ¹ã«ã¨ã£ã¦ã¯ã ãã¾ãé¢ç½ããªã話ããããã¾ããã ã¯ãã¼ã¸ã£ã¯é·å¹´ä½¿ç¨ããã¦ãã¾ããã ç§ãæåã«åºä¼ã£ãã®ã¯ããããã Smalltalk ã ã£ãã¨æãã¾ãã Smalltalk ã§ã¯ãããã¯ã¨å¼ãã§ãã¾ããã Lisp ã§ã¯ã¯ãã¼ã¸ã£ãå¤ç¨ãã¦ãã¾ãã Ruby ã§ãã¯ãã¼ã¸ã£ãæä¾ããã¦ãã¾ãââå¤ãã® rubyist ãã¹ã¯ãªããè¨èªã« Ruby ãé¸ã¶ã®ã¯ãã®ããã§ãã åºæ¬çã«ã¯ãã¼ã¸ã£ã¨ã¯ãã
The Function of FUNCTION in LISP or Why the FUNARG Problem Should be Called the Environment Problem Joel Mose åæ æ¦è¦ å¤ãã®å¼·åãªããã°ã©ãã³ã°è¨èªã«å ±éããããåé¡ãã é¢æ°ã®èªç±å¤æ°ã«ã©ããªå¤ãå²ãå½ã¦ããã決ããªããã°ãããªãå ´åã« çºçããã ãã®åé¡ã解ãããã®ç°ãªãå®è£ ã¢ããã¼ããèå¯ããã è°è«ã¯ãLISPã®å®è£ ã«éä¸ãã ãªãç¾å¨ã®ããã¦ãã®LISPã·ã¹ãã ã ãªãªã¸ãã«ã®LISP1.5ã·ã¹ãã ã»ã©ä¸è¬çã§ãªãã®ããææããã å¯è½ãªéãALGOL風ã®ç¨èªã§ã®è°è«ã試ã¿ãã®ã§ã LISPã«ãªãã¿ã®ãªãèªè ãå°é£ãªããã®æç« ãèªããã«éããªãã å¤ãã®ããã°ã©ãã¯ã ã¹ã¿ãã¯ã使ã£ã¦å帰é¢æ°ã®å¼æ°ã¨å±æå¤æ°ã®å¤ã管çããäºã è¯ãç¥ã£ã¦ãã (訳注1)ã å ·ä½çã«
ãããã¯ããªãcall/ccãããªããã£ããªã®ããã«é¢ããä¸èå¯ (Shiro: ããªãã§ãç¶ç¶ãã«å ¥ããããã¨æã£ã¦ããã¿ã ãã©ã ãã£ã¡ããã¤æ¸ãããããããã®ã§ãå¿ããªãããã«ãã£ã¡ã«ã¾ã¨ãã¨ã) (話ã®æµããããã®ã§ã誤ãã®ä¿®æ£ä»¥å¤ã®ã³ã¡ã³ãã¯éä¸ã§ã¯ãªããä¸çªä¸ã«ãé¡ããã¾ã) returnã¯ã©ãã ? Aliceã¯ããªã¹ãlisã¨è¿°èªæç¶ãpredãåããlisã®åè¦ç´ ã«é ã«predãé©ç¨ãã¦ã predãçã®å¤ãè¿ãããç´ã¡ã«ãã®è¦ç´ ãè¿ããããªé¢æ°findã æ¸ããã¨ãèããã (findã¯ä¾¿å©ãªã®ã§ãå®ã¯srfi-1ã«å®ç¾©ããã¦ããã©ã Aliceã¯ã¾ãèªåã®åå¼·ã®ããã«æ¸ãã¦ã¿ããã¨ã«ããã¨æããã)ã Aliceã¯Perlãªãè¯ãç¥ã£ã¦ãããPerlãªããããªæãã§æ¸ããã¯ãã sub find { ($pred, $lis) = @_; foreach $elt (@
ã¨ããè¨è¿°ã¨å ±ã«ããã°ã®è¨äºãç´¹ä»ããã¦ãã¾ãããClosureã¨ã¯ä½ãªã®ããããã¦Closureã«ã¤ãã¦ã¾ã ããåãã£ã¦ããªãã®ã§ãåå¼·ãã¦ã訳ãã¦ã¿ããã¨æãã¾ããã ã¡ãªã¿ã«ãã®æ¹ãGoogleã®ä¸ã®äººã§ãã2008/10/3æç¹ã®æ å ±ã§ã¯Microsoftã«è»¢è·ãããããã§ãã
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}