Common Lispã«ã¯80幎代ã®ã©ã€ãã©ãªã¯ãªããä»ã«ãã©ã€ãã©ãªããªãããšãããè³ã«ããŸããããã®ãŠãŒã¶ãŒã®å€ãã¯ãDARPAã«ã¿ã³ã³ãã§äººå·¥ç¥èœã«åãçµãã§ãããæ®éã®ããã°ã©ããŒã®æ¥åžžã®ã¿ã¹ã¯ãããç解ããŠããªã3.5人ã®ææã§ãã ãã®èšäºã¯ãå€ãã©ã€ãã©ãªã«åºãããããšã¯ã§ããŸãããææ°ã®ã¢ããã°ã®ã¿ã䜿çšããå¿ èŠãããããšãæ¢åã®ã©ã€ãã©ãªãéçºäžã§ãããæ°ããã©ã€ãã©ãªãåžžã«ç»å ŽããŠããããšã瀺ããŠããŸãã
ãã®èšäºã®èè ã§ããFernando Borrettiã¯ãCommon Lispãšã³ã·ã¹ãã ãžã®ç©æ¥µçãªè²¢ç®è ã§ããã30以äžã®ã©ã€ãã©ãªã®èè ã§ããããã®ã»ãšãã©ã¯Webéçºçšã§ãã
åæ Œããèªè ã¯Common Lispã®ç¶æ³ã«é¢ããäžè¬çãªã¢ã€ãã¢ãåŸãããšãã§ããèå³ã®ãã人ã¯ã³ãŒããæžãããã«å¿ èŠãªãã®ãšãè©Šè¡ã¿ã¹ã¯ã«å¿ èŠãªã©ã€ãã©ãªãç解ã§ããçµéšè±å¯ãªéçºè ã¯ææ°ã®éçºã«ã€ããŠåŠã³ãã³ãã¥ããã£ãæ¯æŽã§ããã©ã€ãã©ãªãç解ããŸãåå¿è ã®è³ªåã«çããæ¹æ³ã«é¢ãããã³ããå ¥æããŠããã®ãã°ããããã¯ãããžãŒãžã®é¢å¿ã殺ããªãããã«ããŸãã è¡ããïŒ
ãŠãŒã¶ãŒãšè²¢ç®è ã®èŠ³ç¹ãã2015幎8æã®Common Lispãšã³ã·ã¹ãã ã«ã€ããŠèª¬æããŸãã
ãã®èšäºã®ç®çã¯ããšã³ã·ã¹ãã ã®æŠèŠãæäŸããåãšãªã¢ã§ã®çµ±äžãæ¯æŽããããšã§ãã
åã¢ããªã±ãŒã·ã§ã³é åã«ã€ããŠããšã³ã·ã¹ãã ã®ãã®éšåãçµ±åããããã®æšå¥šäºé ãšãå°æ¥ã®éçºã®ããã®èå³æ·±ãæ¹åæ§ã瀺ãããŠããŸãã
ã¢ããªã±ãŒã·ã§ã³éçº
ãŠã§ãéçº
ããã¯ãšã³ã
WSGI / Rackã®é¡äŒŒç©ã§ããClackã¯ã2009幎ããååšããŠãããååã«ãã¹ããããŠãããæ¬çªç°å¢ã§åäœããŸãã 3ã€ã®Webãã¬ãŒã ã¯ãŒã¯-Caveman2 ã Ningle ãããã³Lucerneã¯ããã«åºã¥ããŠããŸãã
Clackã¯ãç¹å®ã®ãµãŒããŒå®è£ ã«çžãããããšãªãããŠãŒã¶ãŒãWebãã¬ãŒã ã¯ãŒã¯ïŒãŸãã¯ããåªããWebã¢ããªã±ãŒã·ã§ã³ãã¬ãŒã ã¯ãŒã¯ïŒãäœæã§ããããã«ããHTTPãµãŒããŒã®æœè±¡åã§ãã
Clackã䜿çšããããšã®éèŠæ§ãéå°è©äŸ¡ããããšã¯ã§ããŸãããããšãã°ãHunchentootãªã©ã®ã¢ããªã±ãŒã·ã§ã³ãçŽæ¥ãã«ãããå ŽåãHunchentootã«é¢é£ä»ããããŸããWooãªã©ã®æ°ããé«éãµãŒããŒã衚瀺ãããå Žåã¯ãã¢ããªã±ãŒã·ã§ã³å šäœãæžãæããŠäœ¿çšããå¿ èŠããããŸãã Clackã®ãã©ã°ã€ã³ïŒ clack-errorsãªã©ïŒãäœæãããšãClackã§äœæããããã¬ãŒã ã¯ãŒã¯ã«é¢ä¿ãªãããã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ã§èªåçã«äœ¿çšã§ãããããç¡é§ãªã³ãŒãã®éè€ãæžå°ããŸãã
Clackã䜿çšãããšãHunchentootããWooãžã®åãæ¿ããšé©ç°çãªå éã®åã³ã¯ã libevãã€ã³ã¹ããŒã«ããŠ1ã€ã®éèŠãªåŒæ°ãå€æŽããã ãã®ããšã§ãã
çµè«ïŒ
Hunchentootã®çŽæ¥äœ¿çšãåæ¢ããŸã ã ãã¬ãŒã ã¯ãŒã¯ã®1ã€ã§ããClackã䜿çšããŸãã
ä»åŸã®äœæ¥ïŒ
äž»èŠéšåã¯çµäºããŸãããä»åºŠã¯é«ã¬ãã«ã®ãã®ãäœæããŸãã Djangoã®ããã«ãClackã¢ããªã±ãŒã·ã§ã³ã®æ¡åŒµå¯èœãªç®¡çãã¬ãŒã ã¯ãŒã¯ãè¯ãäŸã§ãã
ããã³ããšã³ã
ãã¹ãŠã¯ãJavaScriptã§ã³ã³ãã€ã«ããCommon Lispã®æ©èœã«é¢é£ããŠããŸãã Common Lispã¯ããªã倧ããªèšèªã§ãããããã€ãã®ãªãã·ã§ã³ããããŸãã
- Parenscript ïŒCommon Lispã®ãµãã»ãããæ £çšçãªJavaScriptã«ã³ã³ãã€ã«ããDSL
- JSCL ïŒCLããJSãžã®èªå·±å±éã³ã³ãã€ã©ãŒã CLOSããã©ãŒããããã«ãŒãã¯ãµããŒããããŠããŸããã ïŒ Parenscriptãšã¯ç°ãªãããã©ãŠã¶ã®ã€ã³ã¿ãŒããªã¿ãŒ-çŽç¿»èš³è ïŒ
çµè«ïŒ
çµ±åããæåã®æ¹æ³ã¯ãæ¢åã®CL-in-JSå®è£ ã®1ã€ãéçºããããšã§ãã
ä»åŸã®äœæ¥ïŒ
CFFIã«äŒŒãŠããŸãããCL-in-JSã®å®è£ çšã§ãããããã©ã€ãã©ãªã®æ°ããããŒãžã§ã³ããªãªãŒã¹ããããšãã«JavaScriptã©ã€ãã©ãªãžã®ãã€ã³ãã£ã³ã°ãæžãæããå¿ èŠã¯ãããŸããã
JavaScriptã§Common Lispãã³ã³ãã€ã«ãããŠãŒãã£ãªãã£ã¯å®è£ ã«äŸåãããParenscriptããJSCLãŸãã¯ä»ã®å®è£ ãžã®ç§»è¡ã容æã«ããŸãã
ã³ãã³ãã©ã€ã³
é·å¹Žã«ããããããŸããŸãªãŠãŒãã£ãªãã£ããã®åéã«ç»å ŽããŸãããããã®æåŸã®ãæ倧ã®è¡åãåãããã®- ããºãŠã§ã« -ãããŒãžã£ãŒ/ã€ã³ã¹ããŒã©ãŒããã³ã¹ã¯ãªããã©ã³ãã£ãŒã®å®è£ ã§ãã ãã®åªããæ©èœã®1ã€ã¯ãããšãã°ããã¥ã¡ã³ããçæããããã«ãå°ããªã¹ã¯ãªãããå®è¡å¯èœãã¡ã€ã«ã«ç°¡åã«ã³ã³ãã€ã«ã§ããããšã§ãã
ãŸãã cl- travisã®ããã€ãã®åé¡ãåé¿ããããã«Travisã«å®è£ ïŒCLïŒãã€ã³ã¹ããŒã«ããããã«ã䜿çšãããŸãã
çµè«ïŒ
cl-launchãçµäºãã Roswellã䜿çšããŸãã
ä»åŸã®äœæ¥ïŒ
ãã®ä»ã®ããºãŠã§ã«ã¹ã¯ãªããã
GUI
é·ãéã倧ããªæžå¿µã¯å®å šãªGUIãœãªã¥ãŒã·ã§ã³ã®æ¬ åŠã§ããã ããã§CommonQtãšQtoolsãã§ããŸãã ã 1ã€ç®ã¯å®éã®ã¢ããªã±ãŒã·ã§ã³ã§é·å¹Žäœ¿çšããã2ã€ç®ã¯ãããç°¡åã«ããã¬ã€ã€ãŒã§ãã
CommonQtã䜿çšããéã®æ倧ã®åé¡ã¯ã Smokeãæ©èœããããã®èŠä»¶ã§ãããç¹ã«Linux以å€ã®ã·ã¹ãã ã§ã¯ãã©ã€ãã©ãªãæ©èœãããããšãé£ããå ŽåããããŸãã ããã¯ã qt-libsã©ã€ãã©ãªã«äŸåããQtoolsã®ãããã§è§£æ±ºãããŸãã çŸåšã®ãã©ãããã©ãŒã çšã®Smokeã©ã€ãã©ãªãããŠã³ããŒãããã¢ããªã±ãŒã·ã§ã³ã®ã«ã¹ã¿ãã€ãºãšå±éãã¯ããã«ç°¡åã«ããŸãã
çµè«ïŒ
CommonQtã«çŠç¹ãåœãŠã cl-cffi-gtkã®æ¹åãæ¯æŽããä»ã®ã©ã€ãã©ãªãå»æ¢ããããšãæ€èšããŠãã ããã
CLIMã¯èå³æ·±ããã®ã§ããããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ãäœæããæ¹æ³ã暡玢ããæåŸã®è©Šã¿ã§ãããã2015幎ã«ã¯å®è¡å¯èœãªãªãã·ã§ã³ã§ã¯ãããŸããã
ä»åŸã®äœæ¥ïŒ
CommonQtããã³Qtoolsã®äœ¿çšã«é¢ãããã®ä»ã®ãã¥ãŒããªã¢ã«ãšäŸã
æ©æ¢°åŠç¿
CLMLã¯éåžžã«çšéã®åºããœãªã¥ãŒã·ã§ã³ã§ãã Mathematical Systems Inc.ã«ãã£ãŠéçºãããŸããã ãæ¥æ¬ã®äŒç€Ÿã Mike Maulã¯ãã®åŸããããgithubã«ç§»æ€ããã³ãŒããå°ãã¯ãªãŒã³ã¢ããããŸããã æç³»åãã¥ãŒããªã¢ã«ãå©çšå¯èœã
ãã®åéã®ãã1ã€ã®åè£ã¯mglã§ã ãããã¯ãèè ãããã°ã¹ããœã³æ©æ¢°åŠç¿ãã£ã¬ã³ãžã«åã€ããã«äœ¿çšãããã®ã§ãã
æ°å€èšç®ã®åéã§ã¯ãç§ã¯ãã€ãAntikã©ã€ãã©ãªã«èå³ããããŸããããæ®å¿µãªãããGPLã®äžã§æ®åãããGNU Scientific Libraryã«äŸåããŠããŸã ã mgl-matãšLLAããããŸãã
çµè«ïŒ
LLAãšmgl-matããã®èšç®çšããŒããšCLMLãšmglããã®æ©æ¢°åŠç¿ããŒããçµã¿åãããããšã§ããã®åéã®ã»ãšãã©ã®åé¡ã解決ã§ããŸãã
ä»åŸã®äœæ¥ïŒ
CLMLã«ã¯ãããããèšç®ãæäœããããã®å€ãã®ã³ãŒããå«ãŸããŠããã SciPyåãšNumPyåã®å¥ã®ã©ã€ãã©ãªã«ç§»åã§ããŸãã
ããŒã¿ããŒã¹
cl-dbiã¯ãããŸããŸãªããŒã¿ããŒã¹åºæã®ã©ã€ãã©ãªïŒcl-postgresãcl-mysqlãªã©ïŒãžã®ãŠãããŒãµã«ã€ã³ã¿ãŒãã§ã€ã¹ãæäŸããŸãã SxQLã¯ãå®å šã§èªåçã«ãã©ã¡ãŒã¿ãŒåããã SQLã¯ãšãªãæ§ç¯ããããã®DSLãæäŸããŸãã
2ã€ã®çããå®å šãªORMããããŸãããã®ã¬ãã¥ãŒã®èè ã®Craneãšcl-dbiã®èè ã®Integral ã§ã ã
çµè«ïŒ
cl-dbi以å€ã®äœ¿çšãçŠæ¢ããŸãã
ä»åŸã®äœæ¥ïŒ
Oracleãªã©ã®ä»ã®ããŒã¿ããŒã¹ã®ãã€ã³ãã£ã³ã°ãååšããŸãã cl-dbiã®ãã©ã€ããŒãäœæããããšã¯ãçµ±äžãä¿é²ããã³æ¯æŽããæè¯ã®æ¹æ³ã§ãã
ã°ã©ãã£ãã¯ã¹
ã°ã©ãã£ãã¯ãããã°ã©ãã³ã°ããããšããªãã®ã§ããã®åéã®ç¥èã¯ã»ãšãã©ãããŸããã CEPLãšå§åŠ¹ãããžã§ã¯ãã®Varjoããã ã ãããªãã¥ãŒããªã¢ã«ã®åªããã³ã¬ã¯ã·ã§ã³ããããŸãã ãã¡ããã cl-openglãcl-sdl2ãªã©ã®äœã¬ãã«ã®ã©ã€ãã©ãªããããŸãã
çµè«ïŒ
CEPLã¯ã»ãŒå®æããŠããããã䜿çšãä¿é²ããŸãã
ä»åŸã®äœæ¥ïŒ
pgã®ãããªé«ã¬ãã«ã®OpenGLã©ã€ãã©ãªã¯çŽ æŽãããã§ãããã
ãã®é åã«ã¯ãç¹ã«ããŸããŸãªã¡ãã·ã¥ãä»ã®3D圢åŒãæäœããããã®ã©ã€ãã©ãªãå€ããããŸãã
競äºå
cl-asyncã¯ããããã競åã«é¢é£ãããããããã®ã«å¯Ÿããæãå®å šãªãœãªã¥ãŒã·ã§ã³ã§ãã ãŸãã Node.jsã®èåŸã«ããã©ã€ãã©ãªlibuvã®äžã«æ§ç¯ãããŠããŸãã
ãã®åéã®ä»ã®æ³šç®ãã¹ãã©ã€ãã©ãªïŒ
- STMX ïŒãœãããŠã§ã¢ãã©ã³ã¶ã¯ã·ã§ã³ã¡ã¢ãªã®ãµããŒããæäŸããéåžžã«å°è±¡çã§ãã
- lparallel ïŒäžŠåããã°ã©ãã³ã°ã®ããã®å®å šãªãã¬ãŒã ã¯ãŒã¯ã
è»å£ã®ãããªå³æžé€šã¯ãç¹å®ã®å Žåã®ç«¶äºãç°¡çŽ åããŸãã
çµè«ïŒ
ä»åŸã®äœæ¥ïŒ
ãã®åéã«ã¯ãæ°ããã¢ã€ãã¢ã®äœå°ããããããããŸãã
ãã¡ã€ã«åœ¢åŒ
Common Lispã«ã¯ããã¹ãŠã®äžè¬çãªãã¡ã€ã«åœ¢åŒã®ã©ã€ãã©ãªããããŸãã
- XMLïŒ ãµã£ãã
- JSONïŒ Yason
- YAMLïŒ cl-yaml
- CSVïŒ cl-csv
JSONã©ã€ãã©ãªã«æ°ããè¿œå ãããã®ã¯ãéåžžã«é«éãªJSONãžã§ãã¬ãŒã¿ãŒããã³ããŒãµãŒã§ããJonathanã§ãã
çµè«ïŒ
XMLããã³JSONã©ã€ãã©ãªãå€ããããããéžæã麻çºããŠããŸããŸãã
ä»åŸã®äœæ¥ïŒ
YAMLããŒãµãŒãcl-yamlãlibyamlã«äŸåããªãããã«ãããããé åžãã¯ããã«ç°¡åã«ãªããŸãã
ã·ã¹ãã ã®çžäºäœçš
UIDFãšASDFã®äºææ§ã¬ãã«ã«ã¯ããã¹ãåã®ã¯ãšãªããå€éšããã°ã©ã ã®å®è¡ããã³ç°å¢å€æ°ã®æäœãŸã§ãããããæ©èœã移æ€ããããã®èšå€§ãªãŠãŒãã£ãªãã£ã®ã»ãããå«ãŸããŠããŸãã
çµè«ïŒ
ãã¹ãŠã«UIOPã䜿çšããŸãã cl-fadã䜿çšããªãã§ãã ããã OSICATã䜿çšããªãã§ãã ããã
ä»åŸã®äœæ¥ïŒ
ãã®åéã§èå³æ·±ããããžã§ã¯ãã¯ãLLVM IRãæååãšããŠããŸãã¯LLVM APIãã€ã³ãã£ã³ã°ã䜿çšããŠçæããDSLã§ãã ããã«ãããä¿¡ããããªãã»ã©åŒ·åãªãã¯ãã·ã¹ãã ãåããã¢ã»ã³ãã©ãŒèšèªãšããŠCommon Lispã䜿çšã§ããããã«ãªããŸãã ããšãã°ãé«åºŠã«æé©åãããSIMDãã¯ãã«åæ°å€ã³ãŒããJITã³ã³ãã€ã«ããã«ã¯ã
ãã®ä»
ãã³ãããŒã¯
Haskellã§Criterionã®ãããªãã¬ãŒã ã¯ãŒã¯ãäœæããããšã¯ã倧ããªåé²ã§ãã
解æ
ããã§ã¯ãéåžžesrapãéžæããŸããããã¯ãLispã®ãããªææ³èšè¿°ããããŒãµãŒãçæããŸãã ãã®åéã§ããã«å€æ§æ§ãå¿ èŠã§ãã æè¿ãé«éãã¯ãã«è§£æã©ã€ãã©ãªã§ããproc-parseããªãªãŒã¹ãããŸããã
ãã®ã³ã°
Common Lispã«ã¯log4clãvomãªã©ã®åªãããã®ã³ã°ãŠãŒãã£ãªãã£ãããããšãé€ããŠãããã«ã€ããŠã¯ããŸãèšããŸããã
éçº
åã·ã¹ãã
ç¹°ãè¿ããŸãããããã§èšãããšã¯äœããããŸããããã ããCommon Lispã«ã¯éåžžã«åªããåã·ã¹ãã ãããããã®ã·ã¹ãã ã¯æ倧éã«äœ¿çšãããŠããŸããã
çµè«ïŒ
CLOSã«ã¯ãFlavorsã®çŸåããããŒãžã§ã³ã®äžã§ç«¶åä»ç€Ÿã¯ããŸãããããã¯ãCommon Lispã§ã®å®éã®å¯äžã®OOPå®è£ ã§ãã
ä»åŸã®äœæ¥ïŒ
ç§ã¯ããtrivial-typesãèŠãŸããããã¯å€ãã®åçŽãªåæå®åãå«ãã©ã€ãã©ãªã§ãã ãã®CDRãå«ããã倧ããªã©ã€ãã©ãªãããã°äŸ¿å©ã§ãã
ãã¹ãäž
å€ãã®ãã¹ããã¬ãŒã ã¯ãŒã¯ããããŸãããäž»ãªãã®ã¯FiveAM以éã®Proveã§ãã
æ¢åã®ã©ã€ãã©ãªã®äžã§ãProveã¯è¯ãåè£ã§ãã æ¡åŒµå¯èœãªã¬ããŒããžã§ãã¬ãŒã¿ãŒã¯çŽ æŽããããã®ã§ãããæ¡åŒµæ§ã«å¯Ÿããäžè¬çãªã¢ãããŒãã«ããããã¹ããã¬ãŒã ã¯ãŒã¯ã®åé¡ã«å¯Ÿããåªãããœãªã¥ãŒã·ã§ã³ãšãªããŸãã
ãã®ä»ã®å€ãã©ã€ãã©ãªã¯ãrtãlisp-unitãªã©ã®ãã¬ãŒã ã¯ãŒã¯ã«äŸåããŠããŸããããããã¯ãã¯ãæ©èœããŸããã
çµè«ïŒ
FiveAMããã³Prove以å€ã®ãã¹ããã¬ãŒã ã¯ãŒã¯ã®äœ¿çšãçŠæ¢ããŸãã
ä»åŸã®äœæ¥ïŒ
çŸåšã®ç¶æ³ã§ã¯ãæ°ãããã¹ããã¬ãŒã ã¯ãŒã¯ãæžããšéå¹æã«ãªããŸãã äœæ¥ã¯ãæ¢åã®ãã®ã®çµ±åã«çŠç¹ãåãããå¿ èŠããããŸãã
ã¯ã©ãŠããã¹ã
Common Lispã¯ã TravisãCoverallsãªã©ã®ãµãŒãã¹ã®äœ¿çšããµããŒãããŠãããããããã¯ã©ãŠãã§ã³ãŒãããã¹ãããã«ãã¬ããžã远跡ããŸãã ãã®ããã®2ã€ã®äž»èŠãªã©ã€ãã©ãªã¯cl-travisãšcl-coverallsã§ãããã©ã¡ããéåžžã«äœ¿ããããã§ãã ç§ã®çµéšã§ã¯ãCommon Lispãããžã§ã¯ãã®ã«ãã¬ããžã®ãã¹ããšè¿œè·¡ã¯ãPythonãããžã§ã¯ãã®åããã®ãããééããªãç°¡åã§ãã
çµè«ïŒ
cl-travisã«ã¯ããã€ãã®åé¡ããããŸããããšãã°ãå®è£ ãã€ã³ã¹ããŒã«ããããã«sudoãå¿ èŠãªãããTravisã®æ°ããDockerããŒã¹ã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã䜿çšã§ããŸããã
Roswellã¯ãã®åé¡ã解決ãããããcl-travisã§Roswellã䜿çšããããšããå§ãããŸãã ããã§ã¯ãRoswellãšTravisã®äœ¿çšã«é¢ãããã¥ãŒããªã¢ã«ãèŠã€ããããšãã§ããŸãã
ä»åŸã®äœæ¥ïŒ
Circle CIãªã©ã®å€ãã®ãµãŒãã¹ã®ãµããŒãã¯åžžã«åœ¹ç«ã¡ãŸãã ãã¥ãŒããªã¢ã«ãè¯ãè¿œå ã«ãªããŸãã
ããã¥ã¡ã³ã
Read the Docsã¹ã¿ã€ã«ã®ãªã³ã©ã€ã³ã§èªåçã«æŽæ°ãããããã¥ã¡ã³ãã«ã¯ã docparserã䜿çšããŠãããžã§ã¯ãAPIã®èª¬æãåŒãåºãQuickdocsããããŸãã
ããã¥ã¡ã³ããžã§ãã¬ãŒã¿ãŒã¯æå€ãšå°ãªãã§ãã Codexã䜿çšããŠããã¥ã¡ã³ããçæããŸãã 圢åŒã«äŸåããªãããã¥ã¡ã³ãã®å éšè¡šçŸãæäŸããã©ã€ãã©ãªã§ããCommonDocã§èšè¿°ãããŠããŸãã Codexã¯Sphinxã«äŒŒãŠããããã«èšèšãããŠããŸããããã¥ã¡ã³ãã¯æ£æã§æžãããŠããããã¯ãã䜿çšããŠãèªåçã«ååŸããAPIããã¥ã¡ã³ãïŒé¢æ°ããã¯ããã¯ã©ã¹ãªã©ïŒãããã¹ãã«æ¿å ¥ããŸãã
çµè«ïŒ
READMEããQuickdocsãåç §ããããæ°èŠãŠãŒã¶ãŒã«ã¢ããã€ã¹ãããªã©ããŠãQuickdocsã®äœ¿çšãä¿é²ããŸãã
ä»åŸã®äœæ¥ïŒ
CodexãšCommonDocã®äœæ¥ãç¶ç¶ããCommonDocã®æ¹åïŒäž»ã«æ°ããåºå圢åŒãšãã¯ãïŒã¯Codexã«åæ ãããŸãã
Unicode
ããã¯ãã»ãšãã©ã®å®è£ ã§æ¬è³ªçã«è§£æ±ºãããåé¡ã§ãã UTF-8以å€ã®ãšã³ã³ãŒãã£ã³ã°ãã€ã³ã¹ããŒã«ãããŠãããšãåé¡ã«ééããå ŽåããããŸãããããã¯ãSBCLãªã©ã§ç°¡åã«ä¿®æ£ã§ããŸãã
(setf sb-impl::*default-external-format* :utf-8)
Cã©ã€ãã©ãªãæäœããå Žåã§ããä»ã®Unicodeã®åé¡ã«ééããããšã¯ãããŸããã
çµè«ïŒ
ABCLãªã©ãäžéšã®å®è£ ã¯UnicodeãµããŒãã«é ãããšã£ãŠããŸãã
ä»åŸã®äœæ¥ïŒ
UnicodeãµããŒãã¯ã cl-unicodeã©ã€ãã©ãªãæ¹åããããšã§è§£æ±ºã§ããŸãã
ããã±ãŒãžç®¡ç
Quicklispã¯ã Common Lispã®äºå®äžã®ããã±ãŒãžãããŒãžã£ãŒã§ãã ããã§ååã§ãã åäœãããã®ãç Žå£ããªãã§ãã ããã
çµè«ïŒ
ãã¹ãŠé 調ã§ãã
ä»åŸã®äœæ¥ïŒ
Quickdocsãqlotãªã©ã®QuicklispããŒã¹ã®ãŠãŒãã£ãªãã£ã
ãã«ãã·ã¹ãã
ASDFã¯ãCommon Lispã®äºå®äžã®ãã«ãã·ã¹ãã ã§ãã 誰ãã圌女ã䜿çšããŠããŸãã
åãããžã§ã¯ãã«ã¯ãã·ã¹ãã å®çŸ©ãšåŒã°ãã.asdãã¡ã€ã«ãããããããžã§ã¯ãã®ã¡ã¿ããŒã¿ïŒäœæè ãã¡ã³ãããŒãããŒã ããŒãžãªã©ïŒãšãã®ã³ã³ããŒãã³ãã瀺ããŸãã
ç§ã«ãšã£ãŠãããã¯Common Lispã®äž»ãªé åçãªæ©èœã®1ã€ã§ãã Pythonã®ãããªèšèªã§ã¯ãåãã¡ã€ã«ã¯å¿ èŠãªãã®ãã€ã³ããŒããããããžã§ã¯ãã¯ãã¡ã€ã«éã®äŸåé¢ä¿ã®å·šå€§ãªã°ã©ãã«ãªããŸãã ASDFã§ã¯ãå®çŸ©ãããé åºã§ãããžã§ã¯ããã¡ã€ã«ããªã¹ãããã ãã§ãã ãŸãã¯ããã¡ã€ã«éã®äŸåé¢ä¿ãæå®ããŠãASDFã«é åºèªäœãèšç®ãããããšãã§ããŸãã äžçªäžã®è¡ã¯ãäŸåé¢ä¿ãæ確ãã€æ確ã«è¡šç€ºãããããšã§ãã
ããããååãªåæºã äž»ãªããšã¯ã誰ãã¢ããã°ãäœæããããªãããã§ã¯ãªããASDFãæ°å¹Žåã«ãã¹ãŠã®éžæè¢ãç Žå£ããããã§ãã ãããŠããã¯è¯ãããšã§ãã
çµè«ïŒ
ãã¹ãŠé 調ã§ãã
ä»åŸã®äœæ¥ïŒ
ASDFã®è¿œå ã³ã³ããŒãã³ããããšãã°C / C ++ãã¡ã€ã«ã®ãã«ãçšã Lispã©ã€ãã©ãªãå¿ èŠãšããå€éšCã©ã€ãã©ãªãããŒãããããã®ãã©ãããã©ãŒã ã«äŸåããªãããã±ãŒãžãããŒãžã£ã¯éåžžã«äŸ¿å©ã§ãã
éçºç°å¢
SLIMEã¯Emacsã«åºã¥ããCommon Lispã®éçºç°å¢ã§ãããæãåºãæ®åããŠããŸãã Emacsã§äœæãããŠãããšããäºå®ã¯åé¡ã§ãããªããªããæ°ãããŠãŒã¶ãŒã«SLIMEã䜿çšããããã«EmacsãåŠã¶å¿ èŠãããããšãäŒããããšïŒããã¯å®å šã«çå®ã§ã¯ãããŸããïŒã¯ãCLãåŠã¶ããã®é倧ãªäººçºçãªé害ã ããã§ãã
çµè«ïŒ
SLIMEã䜿çšããã«ã¯ãäŸµå ¥éå£ãæžãããŸãã
ä»åŸã®äœæ¥ïŒ
Emacs以å€ã®ç°å¢ã§ã¯å€§ããªå®³ã¯ãããŸããã SwankãµãŒããŒã§åäœããAtomã®ãã©ã°ã€ã³ã¯éåžžã«äŸ¿å©ã§ãã
ãããã«
ç¹å®ã®åé¡
ã³ãã¥ãã±ãŒã·ã§ã³
Common Lispã§Webã¢ããªã±ãŒã·ã§ã³ãäœæããClackãç¥ããªã人ã®æ°ã¯å€ãããŸãã æããã«ãåªããã©ã€ãã©ãªã«ã€ããŠæœåšçãªãŠãŒã¶ãŒã«éç¥ããããšã«ã¯åé¡ããããŸãã
éžæã®éº»çº
ç¹å®ã®é åã§ã³ãŒããèšè¿°ããããã«ã©ã®ã©ã€ãã©ãªã䜿çšããããå°ããããå Žåããã®é åã§æé©ãªã©ã€ãã©ãªã®ã¿ãæšå¥šããå¿ èŠããããŸãã ãXãYãZãåãããšãã§ããããšèšãããšã¯ãéžæã®é説ãæªåãããã ãã§ãã
誰ããã°ã©ãã£ã«ã«ã€ã³ã¿ãŒãã§ã€ã¹çšã®ã©ã€ãã©ãªãèŠæ±ããå Žåãã Qtoolsã§ã®CommonQt ããšçããããããcl-cffi-gtkãŸãã¯LTKã䜿çšããããšãã§ããŸã...ããè¿œå ããªãã§ãã ããã
Webã¢ããªã±ãŒã·ã§ã³ã«äœã䜿çšãããå°ããããããClackã®ãã¬ãŒã ã¯ãŒã¯ã®1ã€ãžã®ãªã³ã¯ãå ±æããŠãã ããã HunchentootãWookieãWooããŸãã¯ãã®ä»ã®ãµãŒããŒã«ã€ããŠè©±ããªãã§ãã ããã
䜿çšããéçºç°å¢ãå°ããããå Žåã¯ãããããSLIMEã«åããŠãã ãã ã CLISPã§ã®ã¿åäœãã2005幎ã®æ³¥ã ããã®ãããžã§ã¯ãã«ã€ããŠã¯è©±ããªãã§ãã ããã
ãããŠæãéèŠãªããšã¯ãã©ã®å®è£ ã䜿çšãããå°ãããããã SBCLãŸãã¯CCLãšçããŠãã ãã ã ããŸããåã蟌ã¿ã«ã¯ECLããJVMã«ã¯ãããããã«ABCLã䜿çšããããšãã§ããŸãããšèšããªãã§ãã ããã ãããã¯ãåå¿è ã«ã¯ã€ãã¯ã¹ã¿ãŒããäžããããã§ã¯ãªããããçãã±ãŒã¹ã§äœ¿çšããããã®ãã®ã§ãã
éçº
QuicklispããŠã³ããŒã
以äžã¯ã1æãã7æãŸã§ã®Quicklispããã®100ã®æã人æ°ã®ãããããžã§ã¯ãã®ããŠã³ããŒãç·æ°ã§ãã
ãªããžããª
Githubã®æ°ããCommon Lispãªããžããªã®ãã®ãã£ãŒãã賌èªããŸãã ã ãŸãã NewsbeuterããŒã¿ããŒã¹ãžã®ã¯ãšãªçšã®ã³ãŒããããã€ãäœæããŸããã
(ql:quickload (list :dbi :yason :local-time :group-by)) (defvar *connection* (dbi:connect :sqlite3 :database-name (merge-pathnames #p".newsbeuter/cache.db" (user-homedir-pathname)))) (let* ((output (merge-pathnames #p"lisp-github.json" (user-homedir-pathname))) (query (dbi:prepare *connection* "SELECT pubDate FROM rss_item WHERE feedurl = ?")) (results (mapcar #'(lambda (result) (local-time:unix-to-timestamp (getf result :|pubDate|))) (dbi:fetch-all (dbi:execute query "http://planet.lisp.org/github.atom"))))) (with-open-file (stream output :direction :output :if-exists :supersede :if-does-not-exist :create) (yason:encode (mapcar #'(lambda (group) (list (local-time:format-timestring nil (first group) :format (list :year #\- :month #\- :day)) (1- (length group)))) (group-by:group-by-repeated results :keys (list #'identity) :tests (list #'(lambda (ab) (= (local-time:day-of a) (local-time:day-of b)))))) stream)))
2015幎3æ23æ¥ãã2015幎8æ20æ¥ãŸã§ã«ã882ã®ãªããžããªãäœæãããŸããã
è¬èŸ
UnicodeãµããŒãã«é¢ããã³ã¡ã³ããå¯ããŠãããJavier Olaecheaã«ã æ·±çºæ 倪éãšãã©ã³ãœã¯ã«ããªã㌠ããããŠHaskellãšã³ã·ã¹ãã ã®ç¶æ ã«é¢ããæåã®èšäºãå¯ããGabriel Gonzalezã«æè¬ããŸã ã