翻蚳è ããïŒ2007幎ã«Webãšã³ãžã³ãæ¢ããŠãç§ã¯Lispã®éåžžã«èå³æ·±ãçããæ¹èšã«åºäŒããŸããã ãããŠãããã€ãã®èšäºãèªãã åŸããã®ååã«é äºãããŸããã ç§ã®äž»ãªä»äºã¯Webããã°ã©ãã³ã°ãšã¯ã»ã©é ãã®ã§ãç§ã¯ãããå°éçã«äœ¿ãããšã¯ãããŸããããæã ããã«æ»ã£ãŠå°ãã®ãåµãã«ãªããŸãã
ãã®èšèªã«ç²ŸéããŠããéã圌ã¯äºå®äžã©ãã«ããã©ãã·ã¥ããããã·ã¢èªã§ã¯ã»ãšãã©æ å ±ããããŸããã ãã®ã®ã£ãããåããããšããŸãããã å ã®èšäºã®æ¥ä»ã¯2006幎ã§ããã«ããããããããã®ãããã¯ã¯éåžžã«éèŠã§ãã
Nadezhda Zakharovaããã³çŽ æŽããããµã€ãNotabenoidã®ç¿»èš³ã«ãååããã ãããããšãããããŸãã
1.ã¯ããã«
ç§ã¯ããªãŒãœãããŠã§ã¢ã®ã³ã³ãµã«ã¿ã³ãããã³éçºè ãšããŠåããŠããŸãã 20幎éãããŒãããŒãšç§ã¯ãç»ååŠçãã³ã³ãã¥ãŒã¿ãŒæ¯æŽèšèšãã¢ããªã³ã°ã·ã¹ãã ãããã³ããŸããŸãªéèããã³ããžãã¹ã¢ããªã±ãŒã·ã§ã³ãªã©ã®ãããžã§ã¯ãã«åãçµãã§ããŸããã
ãããã®ãããžã§ã¯ãã®ã»ãšãã©ãã¹ãŠã§ãLispã䜿çšããŸããã ç§ã®æ¯æ¥ã®ä»äºã¯ã顧客ã®èŠæ±ã«è³ãåŸããããžãã¹ããã»ã¹ãåæãã顧客ã®ããŒãºã«å¿ããŠãœãããŠã§ã¢ãéçºããããšã§ãã
éåžžãERPãCRMãªã©ã®ããžãã¹ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãããã¯çµ¶ããå€åããããã»ã¹ã§ãã æ°ãããããžã§ã¯ãã®éå§æã«ã¯ãéçºè ã顧客ããå¿ èŠãªãã®ãæçµè£œåã®å€èŠ³ãæ£ç¢ºã«ææ¡ããŠããŸããã
ããã¯ãå埩ããã»ã¹äžã«çºçããŸãïŒã極端ãªããã°ã©ãã³ã°ããšåŒã°ããããšããããŸãïŒã ã¯ã©ã€ã¢ã³ãã¯ããããã®æ°ããããŒãžã§ã³ãè©äŸ¡ããããã°ã©ã ãããã«éçºããããã®æŠç¥ã«ã€ããŠè©±ãåããŸãã å€ãã®å ŽåãäºæããªãèŠä»¶ã«ããããããžã§ã¯ãã®å€§éšåãæžãçŽãå¿ èŠããããŸãã ããã¯ãç§ã説æããããã»ã¹ãèšç»ã§ããããããããžã§ã¯ããäžååã«èšç»ãããããšãæå³ãããã®ã§ã¯ãããŸããã çæ³çãªäžçã§ã¯ããœãããŠã§ã¢éçºã¯èšç»ããŠããã ããªã®ã§ãã³ãŒããçŽæ¥æžãã®ã«è²»ããæéã¯ãŒãã«ãªãã¯ãã§ãã
ç§ãã¡ã¯ãããã°ã©ã ã«ãããããšãçŽæ¥è¡šçŸã§ããããã°ã©ãã³ã°èšèªãå¿ èŠã§ãã ããã°ã©ããŒããã€ã§ãããã°ã©ã ã§äœãèµ·ãã£ãŠããã®ããç解ã§ããããã«ãã³ãŒãã¯ã§ããéãã·ã³ãã«ã§ããã¹ãã ãšèããŠããŸãã
é·å¹Žã«ããã£ãŠã Pico Lispã·ã¹ãã ã¯ãLispã®æå°éã®å®è£ ããå°çšã®ã¢ããªã±ãŒã·ã§ã³ãµãŒããŒãžãšé²åããŠããŸããã ã©ããããããã¿ã€ãã³ã°ããŒã«ã«ã€ããŠè©±ããŠããããã§ã¯ãªãããšã«æ³šæããŠãã ããã éçºã®å段éã§ãçµæã¯ãããã¿ã€ãã§ã¯ãªãå®å šã«æ©èœããããã°ã©ã ã«ãªããã·ãªã¢ã«ïŒããããææ°ïŒããŒãžã§ã³ã«æé·ããŸãã ããã©ããããéçºç°å¢ãæŽç¶ãšä¿ã¡ãã¢ããªã±ãŒã·ã§ã³ã®ããžãã¯ãšããŒã¿æ§é ãç°¡æœãªè¡šçŸã§è¡šçŸãããããã®ããã°ã©ããŒã®åŒ·åãªããŒã«ãšèšããŸãã
æåã«ãPico Lispã玹ä»ããäœã¬ãã«ã®Picoãä»ã®Lisp-sãŸãã¯éçºã·ã¹ãã ãšå€§ããç°ãªãçç±ã説æãã次ã«é«ã¬ãã«ã§ãã®å©ç¹ã瀺ããŸãã
2.æ¥é²çãªã¢ãããŒã
ããããïŒCommon-ïŒLispã³ãã¥ããã£ã¯Pico Lispãåã°ãªãã§ãããããªããªããããã¯äŒçµ±çã«ãªã£ã信念ãæ矩ã®ããã€ããç Žå£ããããã§ãã ãããã®ããã€ãã¯åãªãç¥è©±ã§ãããLispãé床ã«è€éã§é ããªãåå ã«ãªããŸãã Pico Lispã®å®éã®çµéšã¯ã軜éã§é«éã®Lispãå€ãã®ã¿ã€ãã®å¹æçãªã¢ããªã±ãŒã·ã§ã³éçºã«æé©ã§ããããšã蚌æããŠããŸãã
2.1ã ç¥è©±1ïŒLispã«ã¯ã³ã³ãã€ã©ãå¿ èŠ
å®éãããã¯æãéèŠãªç¥è©±ã§ãã Lispã°ã«ãŒãã®è°è«ã«åå ããå Žåãã³ã³ãã€ã©ãäž»èŠãªåœ¹å²ãæãããŠããããšãããããŸãã ã©ã³ã¿ã€ã ãšã»ãŒå矩èªã®ããã«æãããããããŸããã ã³ã³ãã€ã©ãŒãã³ãŒãã«å¯ŸããŠã©ã®ãããªã¢ã¯ã·ã§ã³ãå®è¡ããã©ã®çšåºŠå¹ççã§ããããéèŠã§ãã Lispããã°ã©ã ã®å®è¡ãé ããšæãããå Žåã¯ãããè¯ãã³ã³ãã€ã©ãå¿ èŠã§ãããšå€æããŸãã
解éãããLispã®èãæ¹ã¯å€ãåŠæ³ãšã¿ãªãããŠããŸãã Modern Lispã«ã¯ã³ã³ãã€ã©ãå¿ èŠã§ããã€ã³ã¿ããªã¿ã¯äŸ¿å©ãªè¿œå æ©èœã§ãããã¢ããªã±ãŒã·ã§ã³ã®ã€ã³ã¿ã©ã¯ãã£ããªãããã°ã«å¿ èŠã§ãã ãã§ã«ãªãªãŒã¹ã®æºåãã§ããŠããããã°ã©ã ãå®è¡ããã«ã¯ãé床ãé ãããŠè¥å€§åããŠããŸãã
å察ã®èŠæ¹ãæ£ãããšç¢ºä¿¡ããŠããŸãã ïŒå²åŠçãªèŠ³ç¹ã ãã§ãªãïŒäžæ¹ã§ãã³ã³ãã€ã«ãããLispããã°ã©ã ã¯ãã¯ãLispã§ã¯ãããŸããã ããã¯ããã³ãŒããšããŒã¿ã®åœ¢åŒçãªåçæ§ããšããåºæ¬çãªã«ãŒã«ã«éåããŸãã çµæã®ã³ãŒãã«ã¯SåŒãå«ãŸããŠããããLispã§åŠçã§ããŸããã ãœãŒã¹èšèªïŒLispïŒã¯å¥ã®èšèªïŒãã·ã³ã³ãŒãïŒã«å€æãããç°ãªããã·ã³ã§ã¯é¿ããããªãéäºææ§ããããŸãã
å®éã«ã¯ãã³ã³ãã€ã©ã¯ã·ã¹ãã å šäœãè€éã«ããŸãã ã³ã³ãã€ã©ã®ããŒãºãæºããããã«ããã«ããªã³ã¯æŠç¥ãåä»ãå€æ°ããã¯ããªã©ã®æ©èœãéçºãããŸããã ã·ã¹ãã ã¯ã€ã³ã¿ããªã¿ããµããŒãããªããã°ãªãããããã«å¿ããŠ2ã€ã®ç°ãªãã¢ãŒããã¯ãã£ããµããŒãããå¿ èŠããããããè¥å€§åããŠããŸãã
ããããåªåãã䟡å€ã¯ãããŸããïŒ ãã¡ãããå®è¡é床ã¯éããã³ã³ãã€ã©ãŒã®äœæã¯ãã¬ãŒãã³ã°ã®ç®çã«ã¯èå³æ·±ããã®ã§ãã ããããæ¥åžžç掻ã§ã¯ãé©åã«èšèšããããéèš³è ããã³ã³ãã€ã«ãããã·ã¹ãã ããã°ãã°äžåãããšãã§ãããšäž»åŒµããŸãã
ããªãã¯ãç§ãã¡ãå®éã«ã解éãã«ã€ããŠè©±ããŠããã®ã§ã¯ãªãããšãç解ããŠããŸãã Lispã·ã¹ãã ã¯ãæž¡ãããããŒã¿ãããã«SåŒãšåŒã°ããå éšãã€ã³ã¿æ§é ã«å€æããŸãã çã®ã解éãã¯1次å ã®æåã³ãŒãã§æ©èœããããã«ããå®è¡ããã»ã¹ãå€§å¹ ã«é ããªããŸãã Lispã¯ããããã®ãã€ã³ã¿æ§é ã«åŸã£ãŠãSåŒããã°ãããèšç®ãããŸãã æ€çŽ¢ããªããããå®éã«ã解éãããããã®ã¯ãããŸããã ããããç§ãã¡ã¯ãã®ããç¥ãããŠããçšèªãå®ããŸãã
SåŒãšããŠã®Lispããã°ã©ã ã¯ãå®è¡å¯èœããŒãã®ããªãŒã圢æããŸãã ãããã®ããŒãã®ã³ãŒãã¯éåžžãæé©åãããCãŸãã¯ã¢ã»ã³ãã©ãŒã§èšè¿°ããããããã€ã³ã¿ãŒããªã¿ãŒã®ã¿ã¹ã¯ã¯ãããããŒãããå¥ã®ããŒãã«å¶åŸ¡ã移ãããšã§ãã ãããã®çµã¿èŸŒã¿Lispé¢æ°ã®å€ãã¯éåžžã«åŒ·åã§å€ãã®èšç®ãè¡ããããã©ã³ã¿ã€ã ã®ã»ãšãã©ã¯ããŒãçšã§ãã ããªãŒèªäœã¯äžçš®ã®æ¥çå€ãšããŠæ©èœããŸãã
Lispã³ã³ãã€ã©ã¯ããã®æ¥çå€ã®äžéšãåé€ããäžéšã®ããŒããããªããã£ããŸãã¯ã¹ããªãŒã æ©èœã«æ©æ¢°ã³ãŒãã«çŽæ¥çœ®ãæããŸãã ãã ãããããã®å Žåãã©ã³ã¿ã€ã ã®å€§éšåã¯çµã¿èŸŒã¿é¢æ°ã«äŸåããããããããã®æ¹åã¯ãããšãã°åããŒãïŒãã€ãã³ãŒãïŒãæ¯èŒçåå§çãªæ©èœãæã€Javaãã€ãã³ãŒãã³ã³ãã€ã©ã»ã©åçã§ã¯ãããŸããã
ãã¡ãããã³ã³ãã€ã«èªäœã«ãå€ãã®æéãããããŸãã å€ãã®å Žåãã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã¯LispãœãŒã¹ãã¡ã€ã«ã1åã®å®è¡ã§ãªã³ã¶ãã©ã€ã§å®è¡ããå®è¡ããããšããã«ã³ãŒããããã«ç Žæ£ããŸãã ãã®ãããªå Žåãã³ã³ãã€ã©ã«åºã¥ããŠæåã«äœéã«ãªã£ãLispã·ã¹ãã ã®ã€ã³ã¿ããªã¿ããŸãã¯ã³ã³ãã€ã©ãè²»ããæéã®å¢å ã«ãããå šäœçãªããã©ãŒãã³ã¹ãå€§å¹ ã«äœäžããŸãã
Pico Lispã®å éšæ§é ã¯ãããšããšè§£éã容æã«ããããã«èšèšãããŸããã ãããã¯å®å šã«Cã§æžãããŠãããç¹ã«é床ãæé©åãããŠããŸããããããã©ãŒãã³ã¹ãäžååãšããåé¡ã¯ãããŸããã§ããã Pico Lispã§æžãããæåã®åçšã·ã¹ãã ã¯ãç»åã®åŠçãšã¬ã¿ãããããã³å°å·çšã®ããŒãžã¬ã€ã¢ãŠãã®äœæãè¡ãã·ã¹ãã ã§ããã 1988幎ã«äœæããã12 MHzã®CPUãš8 MBã®RAMãæèŒããMac IIã§äœ¿çšãããŸããã
ãã¡ãããLispã³ã³ãã€ã©ã¯ãªããCã§æžãããäœã¬ãã«ã®ãã¯ã»ã«æäœãšããžã§é¢æ°ãããããŸããã§ãããããã§ããææ°ã®ã³ã³ãã¥ãŒã¿ãŒãããæ°çŸåé ãã³ã³ãã¥ãŒã¿ãŒã§äœæ¥ããŠãããšããããã©ãŒãã³ã¹ã«ã€ããŠæå¥ãèšã人ã¯ããŸããã§ããã
èå³ã®ããã«ãç§ã¯CLispãã€ã³ã¹ããŒã«ããäŸãšããŠç°¡åãªãã¹ãã䜿çšããŠPico Lispãšæ¯èŒããŸããã ãã¡ãããããã¯ããã¹ãçµæãã¢ããªã±ãŒã·ã§ã³ãµãŒããŒãšããŠã®ç¹å®ã®ã·ã¹ãã ã®æçšæ§ã瀺ãããšãæå³ãããã®ã§ã¯ãããŸãããããããã®ã·ã¹ãã ã®ããã©ãŒãã³ã¹ã®ããããã®ã¢ã€ãã¢ãæäŸããŸãã æåã¯ãåçŽãªååž°ãã£ããããé¢æ°ãå®è¡ããããšããŸããã
(defun fibo (N) (if (< N 2) 1 (+ (fibo (- N 1)) (fibo (- N 2)) ) ) )
ãã©ã¡ãŒã¿ãŒ30ïŒfibo 30ïŒã§ãã®é¢æ°ãåŒã³åºããšã次ã®çµæãåŸãããŸããïŒãã¹ãã¯Pentium-I 266 MHzã©ãããããã§å®è¡ãããŸããïŒã
ãã³ïŒè§£éïŒ | 12ç§ |
CLispã®è§£é | 37ç§ |
ã³ã³ãã€ã«ãããCLisp | 7ç§ |
CLispã€ã³ã¿ãŒããªã¿ãŒã¯Pico Lispã®ã»ãŒ3åé ããã³ã³ãã€ã©ãŒã¯ã»ãŒ2åé«éã§ãã
ãããããã£ããããé¢æ°ã¯å žåçãªLispããã°ã©ã ã®è¯ãäŸã§ã¯ãããŸããã ããªããã£ãã¹ããªãŒã ãšç®è¡é¢æ°ã®ã¿ã§æ§æãããã³ã³ãã€ã©ã«ãã£ãŠç°¡åã«æé©åãããæéãéèŠãªå Žåã¯Cã§çŽæ¥èšè¿°ã§ããŸãïŒãã®å Žåã0.2ç§ããããããŸããïŒ
ãã®ãããåºç¯ãªãªã¹ãåŠçãå®è¡ããé¢æ°ã䜿çšããŠãå¥ã®æ¥µç«¯ãªã±ãŒã¹ãåãäžããŸããã
(defun tst () (mapcar (lambda (X) (cons (car X) (reverse (delete (car X) (cdr X))))) '((abcabc) (bcdbcd) (cdecde) (defdef)) ) )
ãã®é¢æ°ã100äžååŒã³åºããšã次ã®ããã«ãªããŸããïŒ
ãã³ïŒè§£éïŒ | 31ç§ |
CLispã®è§£é | 196ç§ |
ã³ã³ãã€ã«ãããCLisp | 80ç§ |
CLispã€ã³ã¿ãŒããªã¿ãŒã¯çŸåš6å以äžé ããªã£ãŠããŸãããé©ããããšã«ãã³ã³ãã€ã«ãããã³ãŒãã§ããPico Lispãã2.58åé ãã§ãã
ãã¶ãCLispã¯é ãã³ã³ãã€ã©ãæã£ãŠããŸããïŒ ãããŠãããããã³ãŒãã¯ããã€ãã®ããªãã¯ã§é«éåã§ããã§ãããã ãããããããã®çµæã¯ãã³ã³ãã€ã«ã®ãªãŒããŒããããæ£åœåã§ãããã©ããã«ã€ããŠããŸã å€ãã®çåãæ®ããŠããŸãã ã³ã³ãã€ã©ãŒã®æé©åããããã®ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ããžãã¯ã«é¢ããŠããããŠãŠãŒã¶ãŒããŸã é 延ã«æ°ä»ããŠããªããšããç§ãæåŸã«ããããããšã§ãã
2.2ã ç¥è©±2ïŒLispã«ã¯å€ãã®ããŒã¿åãå¿ èŠ
äžèšã®äŸã§èª¬æãããã£ããããé¢æ°ã¯ãå€æ°NãæŽæ°ãšããŠå®£èšããããšã§é«éåã§ããŸãã ãã ãããã®äŸã§ã¯ãã³ã³ãã€ã©ãµããŒãèŠä»¶ãLispã«ã©ã®çšåºŠåœ±é¿ãããã瀺ããŸãã ããŒã¿åãããŒãã³ãŒãã£ã³ã°ãããŠããå Žåãã³ã³ãã€ã©ã¯ããå¹ççãªã³ãŒããçæã§ããŸãã Common Lispã¯ããªã¹ãã«å ããŠãããŸããŸãªæŽæ°åãåºå®/æµ®åå°æ°ç¹åãå°æ°ãæåãæååãæ§é ãããã·ã¥ããŒãã«ããã¯ãã«åãªã©ãå€ãã®ç°ãªãããŒã¿åããµããŒãããŠããŸãã
äžæ¹ãPico Lispã¯3ã€ã®çµã¿èŸŒã¿ããŒã¿åïŒæ°åãæåããªã¹ãïŒã®ã¿ããµããŒããããããã®åã§ãåé¡ãªãæ©èœããŸãã Lispã·ã¹ãã ã¯ãå®è¡æã«ãã§ãã¯ããå¿ èŠã®ãããªãã·ã§ã³ãå°ãªããããå°ãªãããŒã¿åã§ããé«éã«åäœããŸãã ããã«ããã¡ã¢ãªã®äœ¿çšå¹çãäœäžããå¯èœæ§ããããŸãããã¿ã°ã«å¿ èŠãªããããå°ãªããããã¿ã€ãã®æ°ãå°ãªããããšã¹ããŒã¹ãç¯çŽã§ããŸãã
3ã€ã®ããŒã¿ã¿ã€ããã¹ãŠã䜿çšããäž»ãªçç±ã¯ã·ã³ãã«ãã§ãããã·ã³ãã«ãã®å©ç¹ã¯é床ãšã¡ã¢ãªè£æ£ã®å©ç¹ãäžåããŸãã
å®éãæäžäœã¬ãã«ã®Pico Lispã¯ãæ°åãæåãããã³ãªã¹ãã圢æããããã«äœ¿çšãããã»ã«ã®1ã€ã®ããŒã¿åã®ã¿ã䜿çšããŸãã å°ããæ°åãŸãã¯æå°æåã¯ã1ã€ã®ã¡ã¢ãªäœçœ®ã®ã¿ãå æããå¿ èŠã«å¿ããŠåçã«å¢å ããŸãã ãã®ã¡ã¢ãªã¢ãã«ã«ãããå¹ççãªã¬ããŒãžã³ã¬ã¯ã·ã§ã³ãå¯èœã«ãªãããã©ã°ã¡ã³ããŒã·ã§ã³ãå®å šã«åé¿ãããŸãïŒããšãã°ããã¯ã¿ãŒã®å ŽåïŒã
æé«ã¬ãã«ã§ã¯ãããã3ã€ã®ããªããã£ãããŒã¿åã䜿çšããŠãä»ã®ããŒã¿åããã€ã§ããšãã¥ã¬ãŒãã§ããŸãã ãã®ããããªã¹ããæååãã¯ã©ã¹ãããã³ã·ã³ãã«ã䜿çšãããªããžã§ã¯ãã䜿çšããŠããªãŒããšãã¥ã¬ãŒãããŸãã ããã©ãŒãã³ã¹ã®åé¡ã¯ãããŸãããããªãè€éãªã®ã§ããïŒ
2.3ã ç¥è©±3ïŒåçãªã³ã¯ã¯æªã
Pico Lispã¯ãåçãªè¡šé¢ãã€ã³ãã£ã³ã°ã®åçŽãªå®è£ ã䜿çšããŸãã ã·ã³ãã«ã®å€ãæ ŒçŽããã»ã«ã®å 容ã¯ãã©ã ãåŒãŸãã¯ãã€ã³ãã£ã³ã°ç°å¢ã«å ¥ããšãã«ä¿åãããæ°ããå€ãèšå®ãããŸãã æ»ããšãå ã®å€ã埩å ãããŸãã ãã®çµæãã·ã³ãã«ã®çŸåšã®å€ã¯ãã¬ãã·ã«ã«ç°å¢ã®éçãã§ãã¯ããã§ã¯ãªããå±¥æŽãšå®è¡ã¹ããŒã¿ã¹ããåçã«æ±ºå®ãããŸãã
ããããã解éãããã·ã¹ãã ã«ãšã£ãŠãããã¯æãåçŽã§æéã®æŠç¥ã§ãã ã»ã«å€ãæ€çŽ¢ããã«ã¯ãæ€çŽ¢ã¯äžèŠã§ïŒã»ã«å€ãžã®ã¢ã¯ã»ã¹ã®ã¿ãå¿ èŠã§ãïŒããã¹ãŠã®æåïŒããŒã«ã«ãŸãã¯ã°ããŒãã«ïŒã¯åãæ¹æ³ã§åŠçãããŸãã äžæ¹ãã³ã³ãã€ã©ã¯åå¥ãã€ã³ãã£ã³ã°ã®ããå¹ççãªã³ãŒããçæã§ãããããã³ã³ãã€ã«ãããLispã³ãŒãã¯éåžžãããã€ãã®ã¿ã€ãã®ãã€ã³ãã£ã³ã°æŠç¥ããµããŒãããããšã§äºæ ãè€éã«ããŸãã
åçãªã³ã¯ã¯éåžžã«åŒ·åãªã¡ã«ããºã ã§ãã çŸåšã®å€ã«ã¯ã©ãããã§ãã¢ã¯ã»ã¹ã§ããŸããå€æ°èªäœãšãã®å€ã¯åžžã«ç©ççã«ååšãããæ¬ç©ãã§ããããèŠãããã®ãã®ã§ã¯ãããŸããïŒåå¥ãã€ã³ãã£ã³ã°ã®å ŽåããããçšåºŠã¯ééæåã䜿çšããŸãïŒ Pico LispïŒäžèšåç §ïŒïŒã
æ®å¿µãªããã倧ããªãªã¹ã¯ãªãããŠå€§ããªãã£ã³ã¹ã¯ãããŸããã ããã°ã©ããŒã¯ãããããå©çšããŠèœãšãç©Žãåé¿ããããã«ãåºæ¬ååã«ç²ŸéããŠããå¿ èŠããããŸãã ãã ããPico Lispãæšå¥šããèŠåã«åŸãéãããªã¹ã¯ã¯æå°éã«æããããŸãã
åçãªã³ã¯ã䜿çšããèšç®ã®çµæãããã°ã©ããŒã®å¶åŸ¡ããå€ããç¶æ³ã«ã¯ã次ã®2ã€ã®ã¿ã€ãããããŸãã
- ã·ã³ãã«ã¯ããèªäœãšæ¥ç¶ãããŠãããã·ã³ãã«ã®æå³ãå€æŽããããšããŠããŸãã
- çŸåšã®ãœãŒã¹ã³ãŒãã®ç°å¢ã§ã¯èŠããªããã¹ã¹ã«ãŒã³ãŒãã«ãã£ãŠã·ã³ãã«ã®å€ãåçã«å€æŽãããå Žåã®funargïŒé¢æ°åŒæ°ïŒã®åé¡ã
ãã®ãããªç¶æ³ã¯ãäžç¶èšå·ã䜿çšããããšã§åé¿ã§ããŸãã
移è¡æåãšã¯ãPico Lispã®æååã®ããã«èŠããïŒæååãšããŠäœ¿çšãããããšãå€ãïŒæåã§ããããœãŒã¹ã³ãŒãïŒãŸãã¯ãã®äžéšã®ã¿ïŒãå«ãåäžãã¡ã€ã«ã®æéã ãäžæçã«ã€ã³ã¿ãŒã³ãããŸãã ãããã£ãŠãCããã°ã©ã ã®éçèå¥åã«å¹æµããåå¥èœåãæã¡ãä»ã®ãã¹ãŠã®ç¹ã§éåžžã®æåã§ãããããåäœã®ã¿ãå®å šã«åçã§ãã
ãããã£ãŠãã«ãŒã«ã¯åçŽã§ããé¢æ°ãæž¡ãããå€æ°ã®å€ãå€æŽããããæž¡ãããLispåŒã®çµæãïŒçŽæ¥çãŸãã¯éæ¥çã«ïŒèšç®ããå¿ èŠãããå Žåã¯åžžã«ããã®é¢æ°ã®ãã©ã¡ãŒã¿ãŒãééæåã䜿çšããŠèšè¿°ããå¿ èŠããããŸãã å®éã®çµéšã§ã¯ããã®ãããªã±ãŒã¹ã¯é«ã¬ãã«ã®ãœãããŠã§ã¢éçºããã»ã¹ã§ã¯ãŸãã§ãããäž»ã«è£å©ã©ã€ãã©ãªãšã·ã¹ãã ããŒã«ã§çºçããããšã瀺ãããŠããŸãã
2.4ã ç¥è©±4ïŒããããã£ãªã¹ããæªã
ããããã£ã¯ãå€/é¢æ°ã»ã«ã«å ããŠæ å ±ãã·ã³ãã«ã«é¢é£ä»ããããã®ãšã¬ã¬ã³ãã§ããããããæ¹æ³ã§ãã ããŒã¿ã®éãšã¿ã€ããéçã«åºå®ãããŠããªããããéåžžã«æè»ã§ãã
å€ãã®äººã¯ãããããã£ãªã¹ãã¯æ代é ãã§åå§çã§ãããçŸä»£ã§ã¯äœ¿çšã§ããªããšèããŠããããã§ãã 代ããã«ãããé«åºŠãªããŒã¿æ§é ã䜿çšããå¿ èŠããããŸãã ããã¯å Žåã«ãã£ãŠã¯åœãŠã¯ãŸããŸãããã·ã³ãã«å ã®ããããã£ã®ç·æ°ã«ãã£ãŠã¯ãååã®ãããå€ãäºæ³ãããé«ããªãå ŽåããããŸãã
Pico Lispã®ä»¥åã®ããŒãžã§ã³ã¯ãããããã£ãä¿åããããã«ããã·ã¥ããŒãã«ãšèªå·±ãã©ã³ã¹ãã€ããªããªãŒãè©ŠããŸããããéåžžã®ãªã¹ããããå¹ççã§ããããšãããããŸããã ã·ã¹ãã å šäœã®å šäœçãªå¹æãèæ ®ããå¿ èŠããããå€æ°ã®å éšããŒã¿æ§é ïŒäžèšãåç §ïŒãšããè€éãªæ€çŽ¢ã¢ã«ãŽãªãºã ã®äž¡æ¹ããµããŒãããããã®ãªãŒããŒãããã¯ãåçŽãªç·åœ¢æ€çŽ¢ã䜿çšããããã倧ãããªãããšããããããŸãã ãŸããã¡ã¢ãªå¹çã®åé¡ã«ã€ããŠã觊ãããšãããããã£ãªã¹ãã®å©ç¹ãæããã«åã£ãŠããŸãã
Pico Lispã¯ããããã£ãããŒãšå€ã®ãã¢ã®ãªã¹ããšããŠå®è£ ããŸãã é床ã®æé©åãæ¯æããå¯äžã®è²æ©ã¯ããæè¿äœ¿çšãããã¹ããŒã ã§ããããã¯ãç¹°ãè¿ãã¢ã¯ã»ã¹ãå°ãé«éåããŸããããããå®éã«å¿ èŠã ã£ããšããå ·äœçãªå åã¯ãããŸããã
ããããã£ã«å¯Ÿãããã1ã€ã®åŒæ°ã¯ã宣èšãããã°ããŒãã«ãªå¯èŠæ§ã§ãã ããã¯ãCæ§é äœã®ã°ããŒãã«èŠçŽ ãŸãã¯Javaãªããžã§ã¯ãã®ã€ã³ã¹ã¿ã³ã¹å€æ°ãšåãçšåºŠã«åœãŠã¯ãŸããŸãã
ãã¡ãããã°ããŒãã«ã·ã³ãã«ã§ã¯ãããããã£ãã°ããŒãã«ã§ãããäžè¬çãªã¢ããªã±ãŒã·ã§ã³éçºã§ã¯ãããããã£ã¯å¿åã®æåããªããžã§ã¯ãããŸãã¯æ確ã«å®çŸ©ãããã³ã³ããã¹ãã§ã®ã¿äœ¿çšå¯èœãªããŒã¿ããŒã¹èŠçŽ ã«æ ŒçŽãããŸãã ãããã£ãŠãããããã£ãè²ãã¯ãããæå³ã§ã¯ããæå³ã§ãå¥ã®æå³ã§ã¯ãŸã£ããç°ãªãæå³ã§ãçžäºå¹²æžãªãã«äœ¿çšã§ããŸãã
3.ã¢ããªã±ãŒã·ã§ã³ãµãŒããŒ
ãã®åçŽãªPico Lispãã·ã³ã«åºã¥ããŠãåçŽæ§é ã®ã¢ããªã±ãŒã·ã§ã³ãµãŒããŒãéçºããŸããã ããŒã¿ããŒã¹ãšã³ãžã³ïŒPicoLispã®æ°žç¶ïŒæ°žç¶ïŒãªããžã§ã¯ãã®ãã¡ãŒã¹ãã¯ã©ã¹ããŒã¿åãšããŠã®å®è£ ã«åºã¥ãïŒãšæœè±¡ã°ã©ãã£ã«ã«ã€ã³ã¿ãŒãã§ã€ã¹ïŒHTMLãJavaã¢ãã¬ãããªã©ã®çæïŒãçµ±åããŸãã
ãã®çµ±åã·ã¹ãã ã®éèŠãªèŠçŽ ã¯ãåã ã®ã¢ããªã±ãŒã·ã§ã³ã¢ãžã¥ãŒã«ã®å®è£ ã«äœ¿çšãããLispããŒã¹ã®ããŒã¯ã¢ããèšèªã§ãã
ããŒã¿ããŒã¹ãããã¥ã¡ã³ããã¬ããŒãããŸãã¯ãã®ä»ã®ãµãŒãã¹ããã®æ°ãããã¥ãŒãã¢ããªã±ãŒã·ã§ã³ãµãŒããŒããèŠæ±ããããã³ã«ãLispãœãŒã¹ãã¡ã€ã«ãããŠã³ããŒãããããã®å Žã§å®è¡ãããŸãã ããã¯ãåŸæ¥ã®WebãµãŒããŒã§HTMLãã¡ã€ã«ãéä¿¡ããURLãªã¯ãšã¹ãã«äŒŒãŠããŸãã
ãããããã®ãããªã·ããªãªã§è©äŸ¡ãããLispåŒã«ã¯ãéåžžãã€ã³ã¿ã©ã¯ãã£ããªãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ãæ§ç¯ããŠåŠçãããšããå¯äœçšããããŸãã
ãããã®LispåŒã¯ãGUIã³ã³ããŒãã³ãã®æ§é ããŠãŒã¶ãŒã¢ã¯ã·ã§ã³ã«å¿ããåäœãããã³ããŒã¿ããŒã¹ãªããžã§ã¯ããšã®çžäºäœçšãèšè¿°ããŸãã ã€ãŸãããœãããŠã§ã¢ã¢ãžã¥ãŒã«ã®å®å šãªèª¬æãå«ãŸããŠããŸãã ãããå¯èœã«ããã«ã¯ãããŒã«ãªãã£ã®ååãå³å®ãããã¬ãã£ãã¯ã¹ã¯ã©ã¹ãšãªã³ã¯ãµããŒãããŒã¢ã³ã®ã¡ã«ããºã ã䜿çšããããšãéèŠã§ããããšãããããŸããïŒæåŸã®2ã€ã¯å¥ã®ããã¥ã¡ã³ãã§èª¬æãããŠããŸã ïŒã
3.1ã å±ææ§ã®åç
å ã»ã©è¿°ã¹ãããã«ãããžãã¹ã¢ããªã±ãŒã·ã§ã³ã®éçºã¯çµ¶ããå€åããããã»ã¹ã§ãã Localityã®ååã¯ããã®ãããªãããžã§ã¯ãã®éçºã«éåžžã«åœ¹ç«ã¡ãŸããã ãã®ååã§ã¯ã1ã€ã®ã¢ãžã¥ãŒã«ã«é¢ãããã¹ãŠã®æ å ±ããã®ã¢ãžã¥ãŒã«ãšãšãã«1ãæã«ä¿åããå¿ èŠããããŸãã ããã«ãããããã°ã©ãã¯ããããã¹ãŠãä¿åãããŠãã1ã€ã®å Žæã®ã¿ã«éäžã§ããŸãã
ãã¡ãããããã¯ãã¹ãŠæçœãªããã«èŠããŸãããå¯Ÿç §çã«ããœãããŠã§ã¢éçºã®æ¹æ³è«ã§ã¯ãåäœãšããŒã¿ãã«ãã»ã«åããããããã¢ããªã±ãŒã·ã§ã³ã®ä»ã®éšåããé ãå¿ èŠããããŸãã éåžžãããã«ãããã¢ããªã±ãŒã·ã§ã³ããžãã¯ã¯1ãæïŒãœãŒã¹ãã¡ã€ã«ïŒã«èšè¿°ãããŸããããã®ããžãã¯ãå®è£ ããããã®é¢æ°ãã¯ã©ã¹ãããã³ã¡ãœããã¯ä»ã®å Žæã§å®çŸ©ãããŸãã ãã¡ãããããã¯è¯ãæšå¥šäºé ã§ãããå€ãã®åé¡ããããããŸããããã¯ãããŸããŸãªå Žæã«çµ¶ãã移åããå¿ èŠãããããšããæããã§ããè€æ°ã®å Žæã§åæã«å€æŽãšã³ã³ããã¹ãã®åãæ¿ããçºçããŸãã é¢æ°ãéæšå¥šã«ãªã£ãå Žåãäžéšã®ã¢ãžã¥ãŒã«ãæéåãã«ãªãå¯èœæ§ããããŸãããåé€ããã®ãå¿ããŠããŸãã
ãããã£ãŠãé¢æ°ãã¯ã©ã¹ãããã³ã¡ãœããã®æœè±¡çãªã©ã€ãã©ãªã®äœæã¯æ®éçã§ãããšä¿¡ããŠããŸã-å¯èœãªéãæ®éçã§ãäžå®ã®æéãšããŸããŸãªã¢ããªã±ãŒã·ã§ã³ã§ãããã¢ããªã±ãŒã·ã§ã³ãäœæããããã®é«åºŠãªè¡šçŸåãæã€å³æ ŒãªããŒã¯ã¢ããèšèªãæ§ç¯ããããã«äœ¿çšãããŸãã
ãã®èšèªã«ã¯ã³ã³ãã¯ããªæ§æãå¿ èŠã§ãããã¢ããªã±ãŒã·ã§ã³ã®ãã¹ãŠã®éçããã³åçãªåŽé¢ãèšè¿°ããããšãã§ããŸãã ããŒã«ã«ã«ã1ã€ã®å Žæã§ã å¥ã®ãã¡ã€ã«ã§åäœãå®çŸ©ããå¿ èŠã¯ãããŸããã
3.2ã Lisp
ãããŠããããæåããLispãç§ãã¡ã«åã£ãå¯äžã®èšèªã§ãããšäž»åŒµããäž»ãªçç±ã§ãã
Lispã ããåãæ¹æ³ã§ã³ãŒããšããŒã¿ãåŠçã§ããŸãããããPico Lispã¢ããªã±ãŒã·ã§ã³éçºã¢ãã«ã®åºç€ã§ãã éçããŒã¿ãšèªç±ã«æ··åãããå®è¡æã«ã©ããã«è»¢éãããããå éšããŒã¿æ§é ã«ä¿åããããã¡ã³ã¯ã·ã§ã³ãããã¯ãšèšç®åŒãéäžçã«äœ¿çšã§ããŸãã
ç§ãã¡ãç¥ãéããä»ã®èšèªã§ã¯ãå°ãªããšãåãåçŽããšåªé ãã§ããã¯äžå¯èœã§ãã ããçšåºŠãŸã§ãã¹ã¯ãªããèšèªã䜿çšããŠãããã¹ãã®è§£éãããè¡ã䜿çšããŠãããè¡ãããšãã§ããŸããããã®è§£æ±ºçã¯éåžžã«éå®çã§åä»ã§ãã ãããŠãäžã§èª¬æããããã«ãã³ã³ãã€ã«ãããLispã·ã¹ãã ã¯éãããŠæè»æ§ã«æ¬ ããå ŽåããããŸãã ããããã¹ãŠã®ããŒã¿æ§é ãšã³ãŒããã©ã°ã¡ã³ããã·ãŒã ã¬ã¹ã«æ©èœããããã«ã¯ãç°å¢èšå®ããã€ã³ãããå¿ èŠãªãåŒãè©äŸ¡ã§ãããããåçãªãµãŒãã§ã¹ãã€ã³ãæŠç¥ã倧ããªå©ç¹ã§ãã
ãã1ã€ã®çç±ã¯ãLispã䜿çšãããšãæåããã¹ãããããªã¹ããªã©ã®è€éãªããŒã¿æ§é ããæ瀺çã«å®£èšãå²ãåœãŠãåæåããŸãã¯ã¡ã¢ãªãã解æŸããããšãªãçŽæ¥æäœã§ããããã§ãã ããã¯ãã³ãŒãã®ã³ã³ãã¯ãããšèªã¿ãããã«è²¢ç®ããããã°ã©ããŒã«åŒ·åãªåŒããŒã«ãæäŸããŸããããã«ãããä»ã®èšèªã§å¥ã®ã¢ãžã¥ãŒã«ãå¿ èŠãªå Žåã«ã1è¡ã§ããŸããŸãªããšãå®è¡ã§ããŸãã
ãã¹ãŠã«å ããŠãPico Lispã¯ããŒã¿ããŒã¹ãªããžã§ã¯ããšå éšæåãæ£åŒã«åºå¥ããªãããããããã®å©ç¹ã¯ãã¹ãŠããŒã¿ããŒã¹ã®æäœã«ãé©çšãããåãã³ãŒãã䜿çšããŠåãããŒã«ã«ã³ã³ããã¹ãã§GUIãšããŒã¿ããŒã¹æäœãçŽæ¥éä¿¡ã§ããŸãã
4.çµè«
Lispã³ãã¥ããã£ã¯ããéå¹ççãªãLispã®åŠæ³ã«èŠããã§ããããã§ãã ããã¯ãããããæ°å幎ã«ããã£ãŠãLispãé ãããLispãè¥å€§åããŠããããšãã䞻匵ããèªåãã¡ã®èšèªãå®ãããšãäœåãªãããããšããäºå®ã«ãããã®ã§ãã
ããã¯éšåçã«çå®ã§ããã ããããä»æ¥ã®ããŒããŠã§ã¢ã§ã¯ãå®è¡é床ã¯å€ãã®å®çšçãªã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠéèŠã§ã¯ãããŸããã ãããŠããã®ãããªå ŽåãCã§ããã€ãã®éèŠãªé¢æ°ããšã³ã³ãŒããããšãéåžžãã®åé¡ã解決ããŸãã
次ã«ãããå®çšçãªåŽé¢ã«çŠç¹ãåœãŠãŸãããã ãå€ä»£ã®ãLispã·ã¹ãã ãã©ãã»ã©ã³ã³ãã¯ãã§é«éã§ãããã«é©ããããããŸããã ãããã£ãŠãLispãå®éã«ãè¥å€§åããããªãããã«æ³šæããèšèªã®ã³ã¢ããŸããŸãå€ãã®æ©èœã§éè² è·ã«ããå¿ èŠããããŸãããããã°ã©ãã«å®å šãªæè»æ§ãæäŸããåçŽãªãœãªã¥ãŒã·ã§ã³ã䜿çšããããšã決å®ããå¿ èŠããããŸãã
Pico Lispã¯ããLess can moreãã®æŠå¿µã®èšŒæãšèŠãããšãã§ããŸãã