1. Schemeã«ã€ããŠã®åºæ¬ç¥è
Schemeã¯ããŠãŒã¶ã«åºç¯ãªèœåãæäŸããäžæ¹ã§ãåŠçç³»ã«å¯Ÿããå¶çŽãæå°éã«æããããã«èšèšããããªã¹ãåŠçèšèªã§ããåŠç¿ã«å¿ èŠãªæéãåæžããéçºããã»ã¹ãå¹çåããããã®æ©èœãæäŸãããŠããŸãã
Schemeã¯ãã®ã·ã³ãã«ããããããã°ã©ãã³ã°ã®åºæ¬çãªæŠå¿µãæããããã®èšèªãšããŠå¹ åºã䜿ãããŠããŸããããŸãããã®æè»æ§ããæå 端ã®ããã°ã©ã èšèšãŸãã¯ç 究ã®ããŒã«ãšããŠããã³ãã³çšããŸãã
æ¬èšäºã§ã¯ããã®Schemeãšããèšèªã«ã€ããŠãåºæ¬ãããã£ãããšåŠãã§ãããŸãã
1.1 Schemeèšèªã®ç¹åŸŽãšæŽå²
Schemeã¯ã1975幎ã«MITã§çãŸãããªã¹ãåŠçã®ããã°ã©ãã³ã°èšèªã§ããLISPèšèªãã掟çããã·ã³ãã«ããšäžè²«æ§ãç¹åŸŽãšããŠããŸãã
Schemeã§ã¯äžè²«æ§ãšæ±çšæ§ãçªãè©°ããçµæãå šãŠã®ããŒã¿æ§é ã¯ãªã¹ããšãªããå šãŠã®æäœã¯ãªã¹ããžã®æäœãšãªããŸãããã®äžè²«æ§ããååŠè ã«ãšã£ãŠã®ç解ã容æã«ãããŸãåŠåãšããŠã®ç 究ã®äžå©ã«ãªã£ãŠããŸãã
ãŸããSchemeã¯ã©ã ãèšç®ãšããæ°åŠçãªçè«ã«åºã¥ããŠãã¶ã€ã³ãããŠãããããæœè±¡åºŠãé«ããæè»æ§ããããŸãã
1.2 Schemeã«ãããã©ã€ãã©ãªã®åœ¹å²
Schemeã«ãããã©ã€ãã©ãªã¯ãäžè¬ã«ã³ãŒãã®åå©çšæ§ãé«ããããã®ã¢ãžã¥ãŒã«ãšããŠã®åœ¹å²ãæã¡ãŸãã
ã©ã€ãã©ãªã䜿ãããšã§ãæ¢ã«èª°ããæžããŠããã䟿å©ãªé¢æ°ãå®çŸ©ãèªåã®ããã°ã©ã ã§äœ¿ãããšãã§ããŸããããã«ãããéåžžã«é«åºŠãªæ©èœãèªåã§1ããéçºããå¿ èŠãç¡ããªããŸãã
ãŸãSchemeã§ã¯ãèšèªèªäœã®æè»æ§ãšçžãŸã£ãŠãã©ã€ãã©ãªãçšããããšã§é«åºŠãªæœè±¡åãå®çŸããŸããããã«ããã³ãŒãã®å¯èªæ§ãä¿å®æ§ãåäžãããšãããŠããŸãã
1.3 Schemeã§ã®ã©ã€ãã©ãªã®å©çšæã«ç¥ã£ãŠããã¹ãäºé
Schemeã§ã®ã©ã€ãã©ãªã®å©çšæã«ã¯ããŸãã©ã®ã©ã€ãã©ãªã䜿ãã®ãã決ãããã®åŸã§ãã®ã©ã€ãã©ãªãèªã¿èŸŒãå¿ èŠããããŸãã
ã©ã€ãã©ãªã®èªã¿èŸŒã¿ã¯ãéåžžã¯ããã°ã©ã ã®å é éšåã§è¡ãããŸããèªã¿èŸŒãéã«ã¯ã©ã€ãã©ãªã®ååãæ£ããæå®ããå¿ èŠããããŸãã
ãŸããã©ã€ãã©ãªãå©çšããéã¯ããã®ã©ã€ãã©ãªãæäŸããAPIïŒé¢æ°ãå®çŸ©ïŒã®äœ¿ãæ¹ãç解ããŠããå¿ èŠããããŸãããããã®æ å ±ã¯ãéåžžã¯ã©ã€ãã©ãªã®ããã¥ã¡ã³ããŒã·ã§ã³ã§æäŸãããŸãã
1.4 Schemeã©ã€ãã©ãªã®å žåçãªæ§é ãšã¯
Schemeã®ã©ã€ãã©ãªã¯éåžžãäžã€ãŸãã¯è€æ°ã®Schemeãã¡ã€ã«ã«ãã£ãŠæ§æãããããããã®ãã¡ã€ã«ã§ã¯ç¹å®ã®æ©èœçŸ€ãå®çŸ©ãããŠããŸãã
ã©ã€ãã©ãªã®ãã¡ã€ã«ã«ã¯ããã®ã©ã€ãã©ãªãæäŸããé¢æ°ãå®çŸ©ãå«ãŸããŠããŸãããããã®é¢æ°ãå®çŸ©ã¯ãã©ã€ãã©ãªãèªã¿èŸŒãã ããã°ã©ã ããåŒã³åºãããšãã§ããŸãã
æ¯èŒçå°ããªã©ã€ãã©ãªã§ã¯ãäžã€ã®ãã¡ã€ã«ã ãã§å šãŠã®æ©èœãæäŸããããšããããŸãããããã倧ããªã©ã€ãã©ãªã§ã¯ãè€æ°ã®ãã¡ã€ã«ã«åå²ããããããã®ãã¡ã€ã«ã§ç°ãªãæ©èœãæäŸããããšããããŸããããã«ããã䜿çšè ã¯å¿ èŠãªæ©èœã ããèªã¿èŸŒãããšãã§ããå¹çãåäžããŸãã
2. Schemeã®ã©ã€ãã©ãªèšå®ã®åæã¹ããã
Schemeã®ã©ã€ãã©ãªèšå®ã¯Schemeã®å¹æãæ倧éã«åŒãåºãããã«æ¬ ãããªãã¹ãããã§ããããã§ã¯åæèšå®ã«å¿ èŠãªå·¥çšããããããã説æããŸãã以äžã®ã¹ããããé ã«èŸ¿ã£ãŠèšå®ããŠããããšã§ãSchemeã®ã©ã€ãã©ãªèšå®ãå®ç§ã«è¡ãããšãå¯èœã«ãªããŸãã
äžçªå§ãã«è¡ãã¹ãã¯å¿ èŠãªããŒã«ãšãœãããŠã§ã¢ã®ã€ã³ã¹ããŒã«ã§ãã次ã«ãSchemeç°å¢ã®ã»ããã¢ãããè¡ããŸããå ·äœçãªæé ã«ã€ããŠã¯ä»¥äžã®ã»ã¯ã·ã§ã³ã§è©³ãã説æããŸãã
次ã«ã䜿ãããã©ã€ãã©ãªã®éžæãšããŠã³ããŒããè¡ãªããæåŸã«ã©ã€ãã©ãªãšSchemeãé£æºãããèšå®ãè¡ããŸãããã®äžé£ã®æµãããã£ãããšç解ããèªåã®éçºç°å¢ã«åã£ãèšå®ãè¡ã£ãŠãããŸãããã
2.1 å¿ èŠãªããŒã«ãšãœãããŠã§ã¢ã®ã€ã³ã¹ããŒã«
ãŸãåãã«Schemeãåäœãããããã«å¿ èŠãªããŒã«ãšãœãããŠã§ã¢ã®ã€ã³ã¹ããŒã«ãå¿ èŠãšãªããŸãããããã¯ããªããäœãéçºããããã«ãã£ãŠç°ãªãå¯èœæ§ãããããŸããããªããã©ã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã䜿çšããŠãããã«ãã£ãŠãç°ãªããŸãã
äžè¬çã«ã¯ãSchemeã®ã€ã³ã¿ããªã¿ãã³ã³ãã€ã©ãªã©ãå¿ èŠãšãªãã§ããããããããé©åã«ã€ã³ã¹ããŒã«ããããšã§ãSchemeã®ããã°ã©ãã³ã°ãå¯èœã«ãªããŸãã
ãªããå ·äœçãªã€ã³ã¹ããŒã«æ¹æ³ãå¿ èŠãªããŒã«ã»ãœãããŠã§ã¢ã¯äœ¿çšããŠããSchemeã®ããŒãžã§ã³ãéçºç°å¢ã«ãããŸãã®ã§ãå¿ ãå ¬åŒããã¥ã¡ã³ããŒã·ã§ã³ãªã©ãåç §ããŠãã ããã
2.2 Schemeç°å¢ã®ã»ããã¢ãã
ããŒã«ãšãœãããŠã§ã¢ã®ã€ã³ã¹ããŒã«åŸã¯ãSchemeç°å¢ã®ã»ããã¢ãããå¿ èŠãšãªããŸããããã§èšãSchemeç°å¢ãšã¯ãSchemeããã°ã©ã ãå®è¡ããã¹ãããããã®ç°å¢ã®ããšãæããŸãã
ç°å¢æ§ç¯ã®ããã«ã¯ãåºæ¬çã«Schemeã®ã€ã³ã¿ããªã¿ãã³ã³ãã€ã©ãèšå®ããå¿ èŠããããŸãããŸãã䜿çšããã©ã€ãã©ãªã«ãã£ãŠã¯è¿œå ã®èšå®ãå¿ èŠãªå ŽåããããŸãã
ãããã®èšå®ã¯ããã°ã©ã ãã¹ã ãŒãºã«å®è¡ããããã«éèŠã§ãããé©åã«è¡ãããŠããªããšäºæãã¬ãšã©ãŒããã°ãçããå¯èœæ§ããããŸãããããå ·äœçãªèšå®æ¹æ³ã¯äœ¿çšããŠããSchemeã®ããŒãžã§ã³ãéçºç°å¢ã«ãããŸãã®ã§ãå¿ ãå ¬åŒããã¥ã¡ã³ããŒã·ã§ã³ãªã©ãåç §ããŠãã ããã
2.3 ã©ã€ãã©ãªã®éžæãšããŠã³ããŒã
ã©ã€ãã©ãªã®éžæã¯ããªããäœãéçºããããã«ãã£ãŠç°ãªããŸããSchemeã®ã©ã€ãã©ãªã¯éåžžã«å€å²ã«ããã£ãŠãããããããç°ãªãæ©èœãæäŸããŠããŸãã
ãŸããSchemeã®ã©ã€ãã©ãªã¯å ¬åŒãªãã®ã ãã§ãªããå人ãçµç¹ã«ãã£ãŠéçºããããã®ãå€ãååšããŸãããããã¯å ¬åŒãµã€ããGitHubãªã©ã§é åžãããŠããããšãå€ããããŠã³ããŒãããŠäœ¿çšããããšãå¯èœã§ãã
ããŠã³ããŒãããéã«ã¯äœ¿çšèš±è«Ÿã«æ³šæããŠãã ããããŸããã©ã€ãã©ãªã«ãã£ãŠã¯äŸåé¢ä¿ãååšããå ŽåããããŸãã®ã§ã䜿çšããã©ã€ãã©ãªãšãã®äŸåã©ã€ãã©ãªãå šãŠããŠã³ããŒãããé©åã«ç®¡çããããšãéèŠã§ãã
2.4 ã©ã€ãã©ãªãšSchemeã®é£æº
æåŸã«ã©ã€ãã©ãªãšSchemeãé£æºãããèšå®ãè¡ããŸãããã®ããã«ã¯ã©ã€ãã©ãªãSchemeããèªã¿èŸŒãèšå®ãè¡ãå¿ èŠããããŸãã
Schemeã§ã¯”load”é¢æ°ã䜿çšããŠå€éšã®ã©ã€ãã©ãªãèªã¿èŸŒãããšãå¯èœã§ãããŸããSchemeã®ããŒãžã§ã³ã«ãã£ãŠã¯”require”é¢æ°ã䜿çšããããšããããŸãã
ã©ã€ãã©ãªãšSchemeãé£æºãããäžé£ã®å·¥çšã¯ãã©ã€ãã©ãªãå¹æçã«å©çšããããã«å¿ èŠãªã¹ãããã§ãããããŸã§ã®å šãŠã®å·¥çšãé©åã«è¡ãããŠããã°ãSchemeã§ã®ããã°ã©ãã³ã°ãæŽã«äŸ¿å©ã«ãå¹ççã«è¡ããããã«ãªããŸãã
3. Schemeã®ã©ã€ãã©ãªèšå®ã®è©³çŽ°
Schemeã¯åŒ·åãªèšèªæ©èœãåããLispç³»ã®ããã°ã©ãã³ã°èšèªã§ããã©ã€ãã©ãªèšå®ã¯ã䜿çšããã©ã€ãã©ãªã«å¿ããé©åãªèšå®ãè¡ãããšã§ãããã°ã©ã ã®æ§èœãæ倧éã«åŒãåºãããã®éèŠãªäœæ¥ãšãªããŸããæ¬èšäºã§ã¯ãSchemeã®ã©ã€ãã©ãªèšå®ã«ã€ããŠè©³ãã解説ããŸãã
ããã§ã¯ãã©ã€ãã©ãªã®ã€ã³ããŒãæ¹æ³ãã©ã€ãã©ãªã®èšå®ãšã«ã¹ã¿ãã€ãºãã©ã€ãã©ãªã®é©çšãšã³ã³ãã€ã«ããããŠã©ã€ãã©ãªèšå®ã®ç¢ºèªãšãããã°ã®åé ç®ã«ã€ããŠã詳现ã«åããŠèª¬æããŸãã
ããããã®é ç®ã§ãå ·äœçãªã³ãŒãã¹ããããã瀺ãã€ã€é²ããŠãããŸããããSchemeã®ã©ã€ãã©ãªèšå®ã«ã€ããŠèå³æ·±ããå®è·µçãªç¥èãåŸãããšãã§ããã§ãããã
3.1 ã©ã€ãã©ãªã®ã€ã³ããŒãæ¹æ³
Schemeã§ã¯ãä»ã®Lispç³»èšèªãšåæ§ã«ãå¿ èŠãªã©ã€ãã©ãªãã€ã³ããŒãïŒå°å ¥ïŒããããšãã§ããŸãããã®ã€ã³ããŒãã¯ãéåžžããã°ã©ã ã®å é éšåã«è¡ããŸãã
ã€ã³ããŒãããéã«ã¯ã”(import (ã©ã€ãã©ãªå))”ãšãã圢åŒã§èšè¿°ããŸãããã ããã©ã€ãã©ãªåã¯ããã«ã¯ã©ãŒãã§å²ãŸããæ¬åŒ§å ã«èšè¿°ããŸãããŸãã1ã€ã®ããã°ã©ã å ã§è€æ°ã®ã©ã€ãã©ãªãã€ã³ããŒãããããšãå¯èœã§ããã®éã«ã¯åã©ã€ãã©ãªã®ã€ã³ããŒããå¥ã ã®è¡ã§èšè¿°ããŸãã
ãã®ãããªã€ã³ããŒãã®æ¹æ³ãç解ããæ¡çšããããšã§ãå¿ èŠãªã©ã€ãã©ãªã®æ©èœãããã°ã©ã å ã§èªç±ã«æŽ»çšããããšãå¯èœã«ãªããŸãã
3.2 ã©ã€ãã©ãªã®èšå®ãšã«ã¹ã¿ãã€ãº
ã©ã€ãã©ãªã®å¹æãæ倧éã«åŒãåºãããã«ã¯ãèšå®ãã«ã¹ã¿ãã€ãºãéèŠãšãªããŸããSchemeã§ã¯ãã©ã€ãã©ãªã®èšå®ãã«ã¹ã¿ãã€ãºãéããŠãã©ã€ãã©ãªãæäŸããé¢æ°ãããŒã¿åã®åäœãããã°ã©ã ã®èŠä»¶ã«åãããŠèª¿æŽããããšãã§ããŸãã
äŸãã°ãäžéšã®ã©ã€ãã©ãªã§ã¯ããã©ã«ãã®åäœãã«ã¹ã¿ãã€ãã«ãªAPIãæäŸããŠããããããå©çšããããšã§ãããå ·äœçãªåŠçãè¡ãããšãå¯èœã«ãªããŸãããããã®èšå®ãã«ã¹ã¿ãã€ãºæ¹æ³ã¯ãåã©ã€ãã©ãªã®ããã¥ã¡ã³ããŒã·ã§ã³ãåç §ããããšã§ç¢ºèªããããšãã§ããŸãã
ãã®ããã«ãã©ã€ãã©ãªã®èšå®ãšã«ã¹ã¿ãã€ãºãè¡ãããšã§ãäžè¬çãªãã¿ãŒã³ã ãã§ãªããç¹å®ã®èŠä»¶ã«åãããåŠçãç°¡åã«å®è£ ããããšãã§ããããã°ã©ã ã®å¹çãšå¯èªæ§ãåäžãããããšãã§ããŸãã
3.3 ã©ã€ãã©ãªã®é©çšãšã³ã³ãã€ã«
ã©ã€ãã©ãªãã€ã³ããŒãããèšå®ãè¡ã£ãåŸã¯ããã®ã©ã€ãã©ãªã䜿çšããŠããã°ã©ã ãèšè¿°ãããã®ããã°ã©ã ãå®è¡åœ¢åŒã«ã³ã³ãã€ã«ããäœæ¥ãå¿ èŠãšãªããŸãã
Schemeã§ã¯ãã³ã³ãã€ã«ã¯éåžžãã³ãã³ãã©ã€ã³äžã§å®è¡ãããŸããã³ã³ãã€ã©ã«ã¯ãœãŒã¹ã³ãŒããã¡ã€ã«ãåŒæ°ãšããŠæž¡ããåºåãšããŠå®è¡å¯èœãªããã°ã©ã ãçæããŸãããã®éãã©ã€ãã©ãªã®èšå®ãé©åã«è¡ããããã¹ãŠã®ã©ã€ãã©ãªãæ£ããã€ã³ããŒããããŠããããšãå¿ èŠã§ãã
ã³ã³ãã€ã«ãæåãããšãã©ã€ãã©ãªã䜿çšããããã°ã©ã ã®å®è¡ãšãã¹ããå¯èœã«ãªãããã®çµæãåºã«ãã©ã€ãã©ãªã®é©çšãšåãããŠç¢ºèªã調æŽãè¡ãããšãã§ããŸãã
3.4 ã©ã€ãã©ãªèšå®ã®ç¢ºèªãšãããã°
ã©ã€ãã©ãªã®èšå®ãè¡ã£ãåŸã¯ããã®èšå®ãæ£ããæ©èœããŠãããã確èªããäœæ¥ãå¿ èŠã§ãããã®ç¢ºèªã¯ãäž»ã«ããã°ã©ã ã®ãã¹ããéããŠè¡ããŸãã
ãŸããããã°ã©ã ãäºæããªãåäœã瀺ãå Žåããšã©ãŒãçºçããå Žåã¯ãã©ã€ãã©ãªã®èšå®ã䜿çšæ¹æ³ããããã®åå ã§ããå¯èœæ§ããããŸãããã®ãããªå Žåã¯ããããã¬ã䜿çšããŠãšã©ãŒã®åå ãç¹å®ããã©ã€ãã©ãªã®èšå®ã調æŽããããšãå¿ èŠã«ãªãããšããããŸãã
ãããã®ç¢ºèªãšãããã°äœæ¥ãé©åã«è¡ãããããšã§ãã©ã€ãã©ãªã®æ©èœããã«ã«æŽ»çšããå¹ççã§ä¿¡é Œæ§ã®é«ãããã°ã©ã ã®éçºãé²ããããšãã§ããŸãã
4. Schemeã®ã©ã€ãã©ãªèšå®ã«é¢ãããããããšã©ãŒãšå¯ŸåŠæ³
Schemeã®ã©ã€ãã©ãªèšå®ã«ã¯ããã€ãã®äžè¬çãªãšã©ãŒãååšããŸãããã®ãªããããä»åã¯ç¹ã«é »åºãããšã©ãŒãšãã®å¯ŸåŠæ³ã詳ãã解説ããŸãã
ãšã©ãŒã«ééããããšã¯é¿ããããŸããããç解ãšæ£ãã察å¿ã§ãã®ã¹ãã¬ã¹ã軜æžãã¹ãã以äžã®æ å ±ãåèã«ããŠãã ããã
ããã«ãåãšã©ãŒã®å ·äœçãªã±ãŒã¹ãšããã«å¯Ÿãã解çäŸã瀺ããŸãã
4.1 ãšã©ãŒã³ãŒãã®ç解ãšå¯Ÿå¿
ãšã©ãŒã³ãŒãã¯ãåé¡ãç¹å®ã解決ãã¹ãéèŠãªåœ¹å²ãæãããŸãããšã©ãŒã³ãŒãã®ç解ã¯åé¡è§£æ±ºã®ç¬¬äžæ©ãšèšããã§ãããã
äœããã®ãšã©ãŒã³ãŒããçŸãããšãã¯ããŸããããäœã瀺ããŠããã®ããç解ããããšããšã©ãŒã³ãŒãã¯éåžžãç¹å®ã®åé¡ã«å¯ŸããçŽæ¥çãªæ瀺ãšãªããŸãã
ããèŠããããšã©ãŒã³ãŒãã®äžéšã«ã¯è§£èª¬ãšå¯ŸåŠæ³ãå ¬åŒããã¥ã¡ã³ããŒã·ã§ã³ã«èšè¿°ãããŠããŸããããããåç §ããé©åãªå¯Ÿçãç«ãŠãŠãã ããã
4.2 ã©ã€ãã©ãªãèŠã€ãããªãå Žåã®å¯ŸåŠæ³
Schemeã§ã¯ãç¹å®ã®ã©ã€ãã©ãªãèŠã€ãããªãå Žåã«ãšã©ãŒãåºãããšããããŸããã©ã€ãã©ãªãèŠã€ãããªããšã©ãŒã¯ããã¡ã€ã«ãã¹ã®åé¡ãã©ã€ãã©ãªã®ã€ã³ã¹ããŒã«æŒããã©ã€ãã©ãªã®ããŒãžã§ã³äžæŽåãåå ã§ããããšãå€ãã§ãã
ãšã©ãŒãåºãå Žåã¯ããŸãçŸåšã®ã©ã€ãã©ãªã®ãã¹ãæ£ããã確èªããŠä»¥äžã«è¿°ã¹ã察åŠæ³ãè©Šãããšããå§ãããŸãã
ã©ã€ãã©ãªãæ£ããã€ã³ã¹ããŒã«ãããŠããªãå Žåã¯ãåã€ã³ã¹ããŒã«ãè©Šã¿ãã¹ãã§ãããŸããå¿ èŠãªããŒãžã§ã³ãšç°ãªãã©ã€ãã©ãªãååšããå ŽåãããŒãžã§ã³ã®ã¢ããããŒããŸãã¯ããŠã³ã°ã¬ãŒããå¿ èŠã«ãªãã§ãããã
4.3 ã©ã€ãã©ãªã®äŸåé¢ä¿ãæ»ã£ãŠããå Žåã®å¯ŸåŠæ³
次ã«èŠãã¹ããšã©ãŒã¯ãã©ã€ãã©ãªã®äŸåé¢ä¿ãæºããããŠããªãå Žåã§ããã©ã€ãã©ãªå士ãäŸåé¢ä¿ã«ããå Žåãäžæ¹ã®ã©ã€ãã©ãªãæŽæ°ããããå€æŽãããããããšãããäžæ¹ãæ£åžžã«åäœããªãããšããããŸãã
ãã®äŸåé¢ä¿ã®ãšã©ãŒã解æ¶ããã«ã¯ãäžè¬çã«ã¯äŸåããã©ã€ãã©ãªãäžç·ã«ã¢ããããŒãããããŸãã¯åãããŒãžã§ã³ãä¿æããããšãæ±ããããŸãã
äŸåã©ã€ãã©ãªã®ããŒãžã§ã³ç®¡çã¯é£ãããšæãããããããŸãããã泚ææ·±ãäžå¯§ã«è¡ãããšã§ãããã®ãšã©ãŒãé¿ããããšãå¯èœã§ãã
4.4 å ·äœçãªãšã©ãŒã±ãŒã¹ãšãã®è§£æ±ºç
æåŸã«ãäžéšã®å žåçãªãšã©ãŒã±ãŒã¹ãšãããã«å¯Ÿãã解決çãèŠãŠã¿ãŸããããçãã³ãŒãã¹ãããããšãšãã«ãåã±ãŒã¹ã詳现ã«èª¬æããŸãã
äŸãã°ããlibrary not foundããšã©ãŒãçºçããå Žåãåã€ã³ã¹ããŒã«ããã¹ã®ç¢ºèªãã©ã€ãã©ãªã®ããŠã³ããŒãçã解決çãšããŠèããããŸãã
ãŸãããlibrary dependencies failedããšã©ãŒãåºããšãã¯ãå¿ èŠãªäŸåã©ã€ãã©ãªã®ç¢ºèªãã€ã³ã¹ããŒã«ããŸãã¯æŽæ°ãè©Šã¿ãŠãã ããããšã©ãŒã¡ãã»ãŒãžã¯åé¡ã®æ ¹æºãžã®æåã®ææãããšãªããããã¡ãã»ãŒãžããã£ããèªãããšã倧åã§ãã
5. Schemeã®ã©ã€ãã©ãªèšå®ã®æé©å
Schemeã®ã©ã€ãã©ãªèšå®ã®æé©åã¯ãã©ã€ãã©ãªã®ããã©ãŒãã³ã¹ãé«ããããã®äžã€ã®éèŠãªã¢ãããŒãã§ããæ£ããèšå®ãè¡ãããããšã§ãã©ã€ãã©ãªã®ã¬ã¹ãã³ã¹æéãæ¹åãããå šäœçãªã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãåäžããŸãããã®ç« ã§ã¯ããã©ã€ãã©ãªã®ããã©ãŒãã³ã¹ãã¥ãŒãã³ã°ã®ããŠããŠãããéè€ããã©ã€ãã©ãªèšå®ãé¿ããææ³ãããèšå®ã®å¹çåã»èªååã®ããã®ããŒã«ãããææ°ã®åŠçãè¿œãããã®ã¢ããããŒãæé ãã«ã€ããŠè©³ãã説æããŸãã
5.1 ã©ã€ãã©ãªã®ããã©ãŒãã³ã¹ãã¥ãŒãã³ã°ã®ããŠããŠ
ããã©ãŒãã³ã¹ãã¥ãŒãã³ã°ã¯ãSchemeã®ã©ã€ãã©ãªèšå®ã®éèŠãªã¢ã¹ãã¯ãã§ããè² è·ã®é«ãåŠçãå¹ççã«è¡ãããã«ã¯ãé©åãªãã©ã¡ãŒã¿èšå®ãšèª¿æŽãäžå¯æ¬ ã§ããããã©ãŒãã³ã¹ãã¥ãŒãã³ã°ã®ããŠããŠãšããŠã¯ãè² è·ã®é«ãåŠçãããã¯ã°ã©ãŠã³ãã§è¡ããé©åãªã¹ã¬ããããŒã«ã®äœ¿çšãªã©ããããŸãã
ãŸããSchemeã®ã©ã€ãã©ãªã¯ä»®æ³ã¡ã¢ãªã䜿çšãããããã¡ã¢ãªã®èšå®ãéèŠã§ããäžé©åãªã¡ã¢ãªèšå®ã¯æ¥µç«¯ãªã±ãŒã¹ã§ã¯ããã°ã©ã ã®å®è¡ãå°é£ã«ãªãå¯èœæ§ããããŸãããŸããã¡ã¢ãªãªãŒã¯ã®çºçæºãç¹å®ããããã«ã¯ãå®æçãªã¢ãã¿ãªã³ã°ãšé©åãªããŒã«ã®äœ¿çšãäžå¯æ¬ ã§ãã
ããã«ãå®è¡æéãé·ãåŠçã¯ãããã©ãŒãã³ã¹ãã¥ãŒãã³ã°ã®å¯Ÿè±¡ãšãªããŸããé·ãå®è¡æéãæã€åŠçã¯ãäžè¬çã«ã¯ã¡ã¢ãªäœ¿çšéãå€ããããããããåŠçãæé©åããããšã§ã©ã€ãã©ãªå šäœã®ããã©ãŒãã³ã¹ãåäžããããšãå¯èœã§ãã
5.2 éè€ããã©ã€ãã©ãªèšå®ãé¿ããææ³
Schemeã®ã©ã€ãã©ãªèšå®ã§éè€ãçãããšãæéããªãœãŒã¹ã®ç¡é§ã«ã€ãªãããŸããéè€èšå®ã®åé¿ã¯ã倧èŠæš¡ãªã¢ããªã±ãŒã·ã§ã³éçºã§ã¯ç¹ã«éèŠãšãªã課é¡ã§ãã
éè€èšå®ãé¿ããããã®äžã€ã®ææ³ã¯ãäžå 管çã§ããèšå®ãã¡ã€ã«ãäžå åããã©ã€ãã©ãªã®èšå®ãéçŽããããšã§ãéè€ãæé€ããŸãããã®æ¹åŒãæ¡çšããããšã§ãå€æŽãè¡ãéãäžç®æã§ã®ã¿å€æŽãè¡ãããšã§æžãŸããããšãã§ãã管çãå€§å¹ ã«ç°¡ç¥åãããŸãã
ãŸããèšå®ã®ç¶æ¿ãæå¹ãªææ³ãšãªããŸããäžéšã®èšå®ã¯ç¹å®ã®ã©ã€ãã©ãªã«ã®ã¿é©çšãããä»ã®è€æ°ã®ã©ã€ãã©ãªã§ã¯å ±éããŠããŸãããã®ãããªå ±éèšå®ã芪èšå®ãšããåã©ã€ãã©ãªããããç¶æ¿ããããšã§éè€èšå®ãæé€ããèšå®ã®ç®¡çã楜ã«ããŸãã
5.3 èšå®ã®å¹çåã»èªååã®ããã®ããŒã«
Schemeã®ã©ã€ãã©ãªèšå®ã¯ã人æã«ããäœæ¥ã ãã§ãªããç¹å¥ãªããŒã«ã䜿çšããããšã§å¹çåã»èªååããããšãå¯èœã§ããããã«ãããèšå®ã®ç²ŸåºŠãé«ãã€ã€éçšã³ã¹ããåæžããããšãå¯èœãšãªããŸãã
èšå®ã®èªååããŒã«ãšããŠã¯ãèšå®ç®¡çããŒã«ããããã€ã¡ã³ãèªååããŒã«ãªã©ããããŸãããããã®ããŒã«ã¯ãäžå 管çãèšå®ã®ç¶æ¿ãšãã£ãèšå®ãå¹ççã«è¡ãããã«åœ¹ç«ã¡ãŸãããŸãããããã®ããŒã«ã䜿çšããããšã§ãèšå®ã®ãã¥ãŒãã³ãšã©ãŒãæžããããšãå¯èœãšãªããŸãã
ãŸããããã©ãŒãã³ã¹ç£èŠããŒã«ãéèŠã§ãããããã®ããŒã«ã䜿ã£ãŠãªãœãŒã¹ã®äœ¿çšç¶æ³ãã¢ããªã±ãŒã·ã§ã³ã®åäœãç£èŠããããšã§ãåé¡ãçºçããéã«è¿ éã«å¯Ÿå¿ããããšãå¯èœãšãªããŸãã
5.4 ææ°ã®åŠçãè¿œãããã®ã¢ããããŒãæé
Schemeã®ã©ã€ãã©ãªèšå®ã§ã¯ãæ°ããããŒãžã§ã³ã®ãªãªãŒã¹ã«å¯Ÿå¿ããããã®ã¢ããããŒãæé ãéèŠã§ããã¢ããããŒãã¯æ°ããªæ©èœã®è¿œå ãã»ãã¥ãªãã£äžã®åé¡ã®ä¿®æ£ãªã©ãæ§ã ãªçç±ããå¿ èŠãšãªããã®ã§ãã
ã¢ããããŒãæé ãšããŠã¯ããŸãæ°ããããŒãžã§ã³ããªãªãŒã¹ããããšãã«ãªãªãŒã¹ããŒããå ¬åŒããã¥ã¡ã³ãã確èªããããšãéèŠã§ããããã«ãããã©ã®ãããªå€æŽãè¡ãããã®ããæ¢åã®èšå®ã«åœ±é¿ã¯ãªãã®ããšããç¹ãç解ããŸãã
äžæ¹ã§ãã¢ããããŒããè¡ãåã«ã¯ãé©åãªããã¯ã¢ãããè¡ãããšãéèŠã§ããããã«ãããåé¡ãçºçããéã«å ã®ç¶æ ã«æ»ãããšãå¯èœãšãªããŸãããŸããã¢ããããŒãã¯åããŠã®å°èŠæš¡ãªç°å¢ã§è¡ããåé¡ããªãããšã確èªããåŸã«æ¬çªç°å¢ã«é©çšããããšããã¹ããã©ã¯ãã£ã¹ãšãªããŸãã
6. çµããã«
åç« ã§è§£èª¬ããéããSchemeã®ã©ã€ãã©ãªèšå®ã¯éåžžã«éèŠãªæç¶ãã§ããããã®ç®¡çãããã°ã©ã å šäœã®å質ãéçºå¹çã«çŽçµããŸãããŸããåžžã«é²åãç¶ããæè¡ã®äžã§ãææ°ã®ååã«ã€ããŠãææ¡ããŠããããšãå¿ èŠã§ãã
ã©ã€ãã©ãªèšå®ã®ã¹ãã«ã磚ãããããç¶æããããã«ã¯ãç¹°ãè¿ãã®åŠç¿ãšè©Šè¡ãäžå¯æ¬ ã§ããæåŸã«ãææ°ã®ãããã¯ã¹ã«ã€ããŠã確èªãæ ããªãããåªåããŠããããšãæ±ããããŸãã
ããã§ã¯ãããããã®ãã€ã³ãã«ã€ããŠè©³ããèŠãŠãããŸãããã
6.1 Schemeã®ã©ã€ãã©ãªèšå®ã®éèŠæ§å確èª
Schemeã®ã©ã€ãã©ãªèšå®ã¯ãäºæãã¬ãšã©ãŒãæ§èœã®æªåãé²æ¢ããããã§æ¥µããŠéèŠãªããã»ã¹ã§ããç¹ã«å€§èŠæš¡ãªã¢ããªã±ãŒã·ã§ã³éçºã«ãããŠã¯ãé©åã«ã©ã€ãã©ãªã管çããããšã§å€ãã®åé¡ã解æ¶ããããšãã§ããŸãã
ã©ã€ãã©ãªèšå®ãé©åã§ãªããšãã³ãŒãã®ããŒãžã§ã³ç®¡çãæŽåæ§ãã§ãã¯ãããã©ãŒãã³ã¹æé©åãªã©ãé£ãããªããããããããžã§ã¯ãå šäœã®çç£æ§ãå質ã«åœ±é¿ãåãŒããŸãã
ãããã£ãŠãã©ã€ãã©ãªèšå®ã®æè¡ãšç¥èã¯ãããã°ã©ãã³ã°ã®åºç€ã¹ãã«ãšããŠèº«ã«ã€ããŠããã¹ããã®ã§ãããšèšããã§ãããã
6.2 åžžã«ã¢ããããŒãã確èªããããšã®éèŠæ§
ãã¯ãããžãŒã®é²æ©ã¯ãåžžã«æ°ããªèª²é¡ããããããŠããŸããããã«å¯Ÿå¿ããããã«ã¯ãåžžã«ã©ã€ãã©ãªã®ã¢ããããŒãã確èªããææ°ã®ãã®ã«ä¿ã€ããšãæ±ããããŸãã
ã¢ããããŒããé©çšãããçç±ãå€æŽå 容ãç解ããããšã§ãäœãæ¹åãããã®ããã©ã®ãããªåœ±é¿ãããã®ããææ¡ããããã«å¯Ÿå¿ããããšãã§ããŸãã
ææ°ããŒãžã§ã³ã®ã©ã€ãã©ãªã«ç¶ç¶çã«ã¢ããããŒããè¡ãããšã§ãå¯èœãªéãæé«ã®ããã©ãŒãã³ã¹ãçºæ®ããã³ãŒããæžãããšãã§ããŸãã
6.3 ç¹°ãè¿ãåŠç¿ãšåºŠéãªãè©Šè¡ã®å€§åã
ã©ã€ãã©ãªèšå®ãç解ããã¹ã ãŒãºã«è¡ãããã«ã¯ãç¹°ãè¿ãåŠç¿ãšè©Šè¡ãå¿ èŠã«ãªããŸããæ°ããæè¡ãææ³ãåŠã³ãå®è·µããããšã§ãçã®ç解ãšã¹ãã«ãç²åŸã§ããŸãã
ããã«ã倱æãæããã«æ°ããè©Šè¡ãéããããšã§ãã¹ãã«ãé«ããåé¡è§£æ±ºã®èœåãåäžããŸããããã«ãããããé£æ床ã®é«ãåé¡ã«å¯Ÿå¿ããèœåã身ã«ã€ããããšãã§ããŸãã
ç¹°ãè¿ãåŠç¿ãšè©Šè¡ã«ãããã©ã€ãã©ãªèšå®ã®æè¡ã¯ãŸããŸã磚ãããŠãããŸãã
6.4 ææ°ãããã¯ã¹ãšä»åŸã®Schemeèšèªã®åå
Schemeèšèªã¯æŽ»çºã«éçºãé²è¡ãç¶ããŠããããã®ããæ°ãããããã¯ã¹ã¯åžžã«åºçŸããŠããŸãããããã®ãããã¯ã¹ã«ææã§ããããšã¯ãSchemeãšããèšèªãããæ·±ãç解ããå©çšããããã«éèŠã§ãã
ãŸããSchemeèšèªã®å°æ¥ã®ååãäºæž¬ããããã«å¯Ÿå¿ããæºåãããŠããããšãããããã§ãã·ã§ãã«ãªéçºè ã«ã¯æ±ããããŸãã
ãã®ããã«ã¯ãå ¬åŒããã¥ã¡ã³ããŒã·ã§ã³ãéçºè ã³ãã¥ããã£ããªã³ã©ã€ã³ã®æ å ±æºãªã©ãå©çšããŠãæ¥ã ææ°ã®ãããã¯ã¹ããã§ãã¯ãããšãšãã«ãããããã®ååã«ç®ãåããããšãå¿ èŠã§ãã