ææ°ã®ã¯ã©ãŠãã€ã³ãã©ã¹ãã©ã¯ãã£ã«LispãœãããŠã§ã¢ãå±éããããšã«é¢ããæçš¿ãã»ãšãã©ãªãããšã«æ°ã¥ããã®ã§ãçµéšãå ±æããããšããå§ãããŸãã Lispã®ã©ã³ã¿ã€ã ããã³ããã°ã©ãã³ã°ç°å¢ã¯ãæ¬çªã·ã¹ãã ããµããŒãããããã®ããã€ãã®ãŠããŒã¯ã§å°ãå€ãã£ãæ©èœãæäŸããŸãïŒãã£ãã¡ãªãã®ã«ã€ããŠã¯ãæåŸã®éšåã§èª¬æããŸãïŒã
Wut LispïŒ!!
äžè¬çãªèãã«åããŠãLispã¯æ¬çªã·ã¹ãã ãäœæããããã®éåžžã«å®çšçãªèšèªã§ãã äžè¬çã«ãç§ãã¡ã®åšãã«ã¯å€ãã®Lispã·ã¹ãã ããããŸããHipmunkã®èªç©ºåžãæ¢ããŠãããšãããŸãã¯ãã³ãã³ã§å°äžéã«ä¹ã£ãŠãããšãã¯ãLispããã°ã©ã ã䜿çšãããŸãã
ç§ãã¡ã®LispãµãŒãã¹ã¯ãæŠå¿µçã«ã¯ãèšèªåŠè ãç 究è ã«ãã£ãŠäœæãããèšå€§ãªç¥èã®å±±ã§åäœããå€å žçãªAIã¢ããªã±ãŒã·ã§ã³ãè¡šããŠããŸãã 䜿çšãããäž»ãªãªãœãŒã¹ã¯CPUã§ããããããã¯ãŒã¯ã®ã³ã³ãã¥ãŒãã£ã³ã°ãªãœãŒã¹ã®æ倧ã®æ¶è²»è ã®1ã€ã§ãã
ã·ã¹ãã ã¯ãAWSã«ãããã€ãããéåžžã®Linuxã€ã¡ãŒãžã§å®è¡ãããŸãã çç£ã«ã¯SBCLã䜿çšããã»ãšãã©ã®éçºãã·ã³ã§ã¯CCLã䜿çšããŠããŸãã Lispã䜿çšãã楜ããç¬éã®1ã€ã¯ãããŸããŸãªé·æãšçæãæã€ããã€ãã®éçºãããå®è£ ããéžæããæ©äŒãããããšã§ãïŒç§ãã¡ã®å ŽåããµãŒããŒã§ã®äœæ¥é床ãšéçºäžã®ã³ã³ãã€ã«é床ãæé©åããŸããïŒããã¯ç§ãã¡ã«ãšã£ãŠéèŠã§ããåŸè¿°ïŒã
èŠç¥ãã¬åå°ã®èŠç¥ãã¬äºº
Grammarlyã§ã¯ãå€ãã®ããã°ã©ãã³ã°èšèªã䜿çšããŠãµãŒãã¹ãéçºããŠããŸããJVMããã³Javascriptã®èšèªã«å ããŠãErlangãPythonãGoã§ãèšè¿°ããŠããŸãã é©åãªãµãŒãã¹ã®ã«ãã»ã«åã«ãããã¿ã¹ã¯ã«æé©ãªèšèªãŸãã¯ãã©ãããã©ãŒã ã䜿çšã§ããŸãã ãã®ã¢ãããŒãã«ã¯ãµãŒãã¹ã®äŸ¡æ ŒããããŸãããèŠåãšãã¿ãŒã³ãããéžæãšèªç±ãéèŠããŠããŸãã
ãŸããèšèªã«äŸåããªãã·ã³ãã«ãªã€ã³ãã©ã¹ãã©ã¯ãã£ãŠãŒãã£ãªãã£ã«ãäŸåããããšããŸãã ãã®ã¢ãããŒãã¯ããã®ãã¹ãŠã®ãã¯ãããžãŒåç©åããã©ãããã©ãŒã ã«çµ±åããéã®å€ãã®åé¡ãã解æŸãããŸãã ããšãã°ãstatsdã¯ãéåžžã«äœ¿ããããéåžžã«ã·ã³ãã«ã§äŸ¿å©ãªãµãŒãã¹ã®åªããäŸã§ãã ãã1ã€ã¯Graylog2ã§ããã®ã³ã°ã®ã¹ããŒããªä»æ§ãæäŸããŸããCLã§äœ¿çšããããã®æ¢è£œã®ã©ã€ãã©ãªãååšããªãã«ãããããããLispãšã³ã·ã¹ãã ã§å©çšå¯èœãªãã®ããã¢ã»ã³ãã«ããã®ã¯éåžžã«ç°¡åã§ããã å¿ èŠãªãã¹ãŠã®ã³ãŒãã¯æ¬¡ã®ãšããã§ãïŒãããŠãã»ãšãã©ãã¹ãŠãä»æ§ã®åèªç¿»èš³ã®åãªãåèªã§ãïŒã
(defun graylog (message &key level backtrace file line-no) (let ((msg (salza2:compress-data (babel:string-to-octets (json:encode-json-to-string #{ :version "1.0" :facility "lisp" :host *hostname* :|short_message| message :|full_message| backtrace :timestamp (local-time:timestamp-to-unix (local-time:now)) :level level :file file :line line-no }) :encoding :utf-8) 'salza2:zlib-compressor))) (usocket:socket-send (usocket:socket-connect *graylog-host* *graylog-port* :protocol :datagram :element-type '(unsigned-byte 8)) msg (length msg))))
ãšã³ã·ã¹ãã ã«ã©ã€ãã©ãªããªãããšã¯ãLispã«å¯Ÿããããããäžæºã®1ã€ã§ãã ã芧ã®ãšããããã®äŸã§ã¯ã5ã€ã®ã©ã€ãã©ãªããšã³ã³ãŒããå§çž®ãUnixæéã®åä¿¡ãæ¥ç¶ãœã±ãããªã©ã«äœ¿çšãããŠããŸãã
Lispã©ã€ãã©ãªã¯ååšããŸããããã¹ãŠã®ã©ã€ãã©ãªçµ±åãšåæ§ã«ãåé¡ãçºçããŸãã ããšãã°ãJenkins CIãæ¥ç¶ããã«ã¯ãxUnitã䜿çšããå¿ èŠãããããã®ä»æ§ãèŠã€ããã®ã¯ããã»ã©ç°¡åã§ã¯ãããŸããã§ããã 幞ããªããšã«ã Stackoverflowã«é¢ãã 1ã€ã®è³ªåã圹ã«ç«ã¡ãŸãããæçµçã«ãç§ãã¡ã¯ããããã¹ããã¹ããã¹ãã©ã€ãã©ãªã«çµã¿èŸŒã¿ãŸããã
ãã1ã€ã®äŸã¯ãæ©æ¢°åŠç¿ã¢ãã«ãå ±æããããã®HDF5ã®äœ¿çšã§ããäœã¬ãã«ã®hdf5-cffiã©ã€ãã©ãªãçŸå®ã«é©å¿ãããã®ã«å°ãæéãè²»ãããŸããããçŸåšã®ããŒãžã§ã³ã®Cã©ã€ãã©ãªããµããŒãããããã«AMIïŒAmazon Machine ImageïŒã®æŽæ°ã«ããå€ãã®æéãè²»ãããªããã°ãªããŸããã§ããã
Grammarlyãã©ãããã©ãŒã ã§åŸããã1ã€ã®ååã¯ãããŸããŸãªãµãŒãã¹ãæ倧éã«å解ããŠãæ°Žå¹³æ¹åã®ã¹ã±ãŒã©ããªãã£ãšæ©èœã®ç¬ç«æ§ã確ä¿ããããšã§ããããã¯ç§ã®ååã®æçš¿ã§ã ã ãããã£ãŠãèšèªã³ã¢ãµãŒãã¹ã®éèŠãªéšåã§ããŒã¿ããŒã¹ãšå¯Ÿè©±ããå¿ èŠã¯ãããŸããã ãã ããå éšã¹ãã¬ãŒãžã«ã¯MySQLãPostgresãRedisãããã³Mongoã䜿çšãã CLSQL ã postmodern ã cl-redisãããã³cl-mongoã䜿çšããŠLispãããããã«ã¢ã¯ã»ã¹ããŸããã
Quicklispã䜿çšããŠãå€éšã®äŸåé¢ä¿ãšãç¬èªã®ã©ã€ãã©ãªãšãã©ãŒã¯çšã®ãããžã§ã¯ããåããã·ã³ãã«ãªã©ã€ãã©ãªãœãŒã¹ã³ãŒãããã±ãŒãžã·ã¹ãã ã管çããŸãã Quicklispãªããžããªã«ã¯ã1000åãè¶ ããLispã©ã€ãã©ãªãå«ãŸããŠããŸããããã¯éåžžã«å€§ããªæ°ã§ã¯ãããŸããããæ¬çªç°å¢ã®ãã¹ãŠã®ããŒãºãæºããã«ã¯ååã§ãã
å®çšŒåç°å¢ã§ã®å±éã«ã¯ããŠãããŒãµã«ã¹ã¿ãã¯ã䜿çšããŸããJenkinsã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ããã¹ãããã³æ§ç¯ãã Rundeckã®ãããã§ãµãŒããŒã«é ä¿¡ãã Upstartãä»ããŠéåžžã®Unixããã»ã¹ãšããŠèµ·åããŸãã
äžè¬ã«ãLispã¢ããªã±ãŒã·ã§ã³ãã¯ã©ãŠãã®äžçã«çµ±åãããšãã«çŽé¢ããåé¡ã¯ãä»ã®å€ãã®ãã¯ãããžãŒã§ééããåé¡ãšæ ¹æ¬çã«ã¯ç°ãªããŸããã å®çšŒåç°å¢ã§Lispã䜿çšããLispã³ãŒãã®äœæã楜ãã¿ããå Žåãæè¡çãªçç±ã¯ãããŸããã
ç§ãä»ãŸã§ãããã°ããäžã§æãé£ãããã°
ãã®ç©èªãã©ãã»ã©å®ç§ã§ãã£ãŠããè¹ãšãŠãã³ãŒã³ã ãã§ã¯ãããŸããã
é£è§£ãªã¢ããªã±ãŒã·ã§ã³ãäœæãïŒLispã®äžçã®æšæºã§ãïŒããã®éçšã§ããã€ãã®ãã©ãããã©ãŒã ã®å¶éã«ã¶ã€ãããŸããã ãã®ãããªé©ãã®1ã€ã¯ãã³ã³ãã€ã«æã«ã¡ã¢ãªäžè¶³ã«ãªãããšã§ããã ç§ãã¡ã¯ãã¯ãã«å€§ããäŸåããŠããããã®ãã¡ã®æ倧ã®ãã®ã¯æ°åè¡ã®äœã¬ãã«ã³ãŒãã«æ¡åŒµãããŸãã SBCLã³ã³ãã€ã©ã¯å€ãã®æé©åãå®è£ ããŠãããããããªãé«éã«çæãããã³ãŒãã楜ããããšãã§ããŸããããããã®ããã€ãã¯ææ°é¢æ°çãªæéãšã¡ã¢ãªãå¿ èŠãšããŸãã æ®å¿µãªããããããããªãã«ããã調æŽãããããæ¹æ³ã¯ãããŸããã ããã«ãããããããããç¥ãããäžè¬çãªè§£æ±ºçã§ããcall-with- *ã¹ã¿ã€ã«ããããŸããããã«ãããã¢ãžã¥ãŒã«æ§ïŒãã®ã±ãŒã¹ã§ã¯æ±ºå®çã§ããããšãå€æïŒãšãããã°ã®ããã«å¹çãå°ãç ç²ã«ããããšãã§ããŸãã
ã¬ããŒãžã³ã¬ã¯ã¿ãŒã調æŽããŠé 延ãæžãããã·ã¹ãã ã®ãªãœãŒã¹äœ¿çšçãæ¹åããããšã¯ãã³ã³ãã€ã©ãŒã䜿ãããªãã®ãšã¯ç°ãªããäºæ³å€ã®åé¡ã§ã¯ãããŸããã SBCLã¯ãJVMã»ã©é«åºŠã§ã¯ãããŸããããäžä»£ã«åªããã¬ããŒãžã³ã¬ã¯ã¿ãæäŸããŸãã äžä»£ã®ãµã€ãºã調æŽããå¿ èŠããããæé©ãªãªãã·ã§ã³ã¯ãã倧ããªããŒãã䜿çšããããšã§ããããšãå€æããŸãããã¢ããªã±ãŒã·ã§ã³ã¯2ãã4ã®ã¬ãã€ãã®ã¡ã¢ãªãæ¶è²»ããŸããã25Gã®ããŒãã§èµ·åããèªåçã«ç¬¬1äžä»£ã®ãµã€ãºãå¢å ããŸããã ç§ãã¡ãããªããã°ãªããªãã£ããã1ã€ã®ã»ããã¢ããã¯ãNåããšã«ããã°ã©ã ã§GCãéå§ããããšã§ããã ããŒãã®å¢å ã«äŒŽããæ°ååéã«ããã£ãŠã¡ã¢ãªäœ¿çšéãåŸã ã«å¢å ããŠããããšãããããŸãããããã«ãããGCã«è²»ããããæéãå¢ããã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãäœäžããŸããã å®æçãªGCã䜿çšããã¢ãããŒãã«ãããã·ã¹ãã ã¯ã»ãŒäžå®ã®ã¡ã¢ãªæ¶è²»ã§ããå®å®ããç¶æ ã«ãªããŸããã å·ŠåŽã§ã¯èšå®ãªãã§ã·ã¹ãã ãã©ã®ããã«åäœãããã確èªã§ããå³åŽã§ã¯å®æçãªGCã®å¹æã確èªã§ããŸãã
ããããã¹ãŠã®å°é£ã®äžã§ãç§ãééããæãäžå¿«ãªãã°ã¯ãããã¯ãŒã¯ã®ãã°ã§ããã ãã®ãããªç¶æ³ã§éåžžèµ·ããããã«ããã°ã¯ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãªãã åºç€ãšãªããã©ãããã©ãŒã ïŒä»åã¯SBCLïŒã«ãããŸããã ããã«ã2ã€ã®ç°ãªããµãŒãã¹ã§2å圌ã«åºããããŸããããåããŠãããç解ã§ããªãã£ããããåé¿ããå¿ èŠããããŸããã
æ¬çªç°å¢ã®ããªãã®ã¯ãŒã¯ããŒãã§ãµãŒãã¹ã®èµ·åãéå§ããã°ããã®ãšããéåžžã®æ©èœããã°ããç¶ããåŸããã¹ãŠã®ãµãŒããŒãçªç¶é ããªããæçµçã«å©çšã§ããªããªããŸããã å ¥åãçãããé·æéã®èª¿æ»ã®çµæãåé¡ã¯äœã¬ãã«ã®SBCLãããã¯ãŒã¯ã³ãŒãã®ç«¶åãç¹ã«ã¹ã¬ããã»ãŒãã§ã¯ãªããœã±ããé¢æ°getprotobynameã®åŒã³åºãæ¹æ³ã«ããããšãããããŸãã ã éåžžã«ãŸããªã¬ãŒã¹ã§ãã£ãããããã®é¢æ°ãäœäžåãåŒã³åºããããšãã«ãè² è·ã®é«ããããã¯ãŒã¯ãµãŒãã¹ã§ã®ã¿çŸããŸããã ããã«ãããã¯ãŒã¯ãããŒã次ã ã«ããã¯ã¢ãŠããããåŸã ã«ã·ã¹ãã ãcomç¡ç¶æ ã«ãªããŸããã
æ®å¿µãªããããããã©ã€ãã©ãªãšããŠããåºãã³ã³ããã¹ãã§äœ¿çšããããšã¯ã§ããŸããã ïŒãã°ã¯SBCLããŒã ã«éä¿¡ãããä¿®æ£ãããŸãããã念ã®ããããã®ããã¯ãåŒãç¶ã䜿çšããŠããŸã:)
#+unix (defun sb-bsd-sockets:get-protocol-by-name (name) (case (mkeyw name) (:tcp 6) (:udp 17)))
æªæ¥ã«æ»ã
Common Lispã·ã¹ãã ã¯ãäŒèª¬çãªLispãã·ã³ã®å€ãã®ã¢ã€ãã¢ãå®è£ ããŠããŸãã æãé¡èãªãã®ã®1ã€ã¯ãSLIMEã€ã³ã¿ã©ã¯ãã£ãç°å¢ã§ãã æ¥çã§ã¯LightTableããã³åæ§ã®ããŒã«ã®æçãæåŸ ããŠããŸãããLispããã°ã©ããŒã¯é·å¹Žã«ããã£ãŠSLIMEã®ãããã®æ©èœãéãã«æ¥œããã§ããŸãã ãã®éæŠè£ ããæ©èœããŠããæŠéã¹ããŒã·ã§ã³ã®åãã芧ãã ããã
ããããSLIMEã¯IDEã«å¯ŸããLispã®ã¢ãããŒãã ãã§ã¯ãããŸããã ã¯ã©ã€ã¢ã³ã/ãµãŒããŒã¢ããªã±ãŒã·ã§ã³ã§ããããããªã¢ãŒããã·ã³ã§ããã¯ãšã³ããå®è¡ããããŒã«ã«ã®EmacsïŒãŸãã¯ãSLIMVã䜿çšããªãå Žåã¯VimïŒããããã¯ãšã³ãã«æ¥ç¶ã§ããŸãã Javaããã°ã©ããŒã¯JConsoleã«ã€ããŠèãããããããŸããããããã§ã¯äºåå®çŸ©ãããäžé£ã®æäœã«å¶çŽããããå¿ èŠã«å¿ããŠå çãŸãã¯å€æŽãè¡ãããšãã§ããŸãã ãããã®æ©èœããªããã°ããœã±ããã®æ©èœã®ç«¶åããã£ããããããšã¯ã§ããŸããã
ããã«ãSLIMEãæäŸããæçšãªãŠãŒãã£ãªãã£ã¯ãªã¢ãŒãã³ã³ãœãŒã«ã ãã§ã¯ãããŸããã å€ãã®IDEã®ããã«ãé¢æ°ã®ãœãŒã¹ã³ãŒãã«å ¥ãããšãã§ããŸãããJavaãPythonãšã¯ç°ãªãããã·ã³ã«SBCLãœãŒã¹ã³ãŒãããããŸãããã®ãããå®è£ ã®ãœãŒã¹ã³ãŒããããèŠãŸãããã³ãããã®äžãã ãœã±ãããã°ã®å Žåãããã¯ãããã°ããã»ã¹ã®éèŠãªéšåã§ããããŸããã
æåŸã«ãã€ã³ããã¹ãã¯ã·ã§ã³ãšãããã°ã«äœ¿çšãããã1ã€ã®éåžžã«äŸ¿å©ãªãŠãŒãã£ãªãã£ã¯TRACEã§ãã ããã°ã©ã ã®ãããã°ã«å¯Ÿããã¢ãããŒããå®å šã«å€ãããé¢åãªã³ãŒãå®è¡ã段éçã«è¡ã代ããã«ãå šäœåãåæã§ããŸãã ãã®ããŒã«ã¯ããœã±ãããã°ã®ããŒã«ã©ã€ãºã«ã圹ç«ã¡ãŸããã
ãã¬ãŒã¹ã§ã¯ããã¬ãŒã¹ããé¢æ°ãæå®ããã³ãŒããå®è¡ãããšãLispã¯ãã®é¢æ°ãžã®ãã¹ãŠã®åŒã³åºããšãã®åŒæ°ãããã³è¿ããããã¹ãŠã®çµæãåºåããŸãã ããã¯ã¹ã¿ãã¯ãã¬ãŒã¹ã®ãããªãã®ã§ãããå®å šãªã¹ã¿ãã¯ãå¿ èŠãšãããã¢ããªã±ãŒã·ã§ã³ãåæ¢ããã«åçã«ãã¬ãŒã¹ã¹ããªãŒã ãååŸããŸãã ãã¬ãŒã¹ã¯ã¹ããã€ãã®å°å·ã®ãããªãã®ã§ãè€éãªã³ãŒãã®å éšããã°ããçªãæããŠãããã°ã©ã ã®è€éãªãã¹ã远跡ã§ããŸãã å¯äžã®æ¬ ç¹ã¯ããã¯ãããã¬ãŒã¹ã§ããªãããšã§ãã
ããã¯ããµãŒãã¹ã®1ã€ã«å¯ŸããJSONãªã¯ãšã¹ããæ£ããçæãããç®çã®çµæãè¿ãããããšã確èªããããã«ä»æ¥è¡ã£ããã¬ãŒã¹ã®ãã©ã°ã¡ã³ãã§ãã
0: (GET-DEPS ("you think that's bad, hehe, i remember once i had an old 100MHZ dell unit i was using as a server in my room")) 1: (JSON:ENCODE-JSON-TO-STRING #<HASH-TABLE :TEST EQL :COUNT 2 {1037DD9383}>) 2: (JSON:ENCODE-JSON-TO-STRING "action") 2: JSON:ENCODE-JSON-TO-STRING returned "\"action\"" 2: (JSON:ENCODE-JSON-TO-STRING "sentences") 2: JSON:ENCODE-JSON-TO-STRING returned "\"sentences\"" 1: JSON:ENCODE-JSON-TO-STRING returned "{\"action\":\"deps\",\"sentences\":[\"you think that's bad, hehe, i remember once i had an old 100MHZ dell unit i was using as a server in my room\"]}" 0: GET-DEPS returned ((("nsubj" 1 0) ("ccomp" 9 1) ("nsubj" 3 2) ("ccomp" 1 3) ("acomp" 3 4) ("punct" 9 5) ("intj" 9 6) ("punct" 9 7) ("nsubj" 9 8) ("root" -1 9) ("advmod" 9 10) ("nsubj" 12 11) ("ccomp" 9 12) ("det" 17 13) ("amod" 17 14) ("nn" 16 15) ("nn" 17 16) ("dobj" 12 17) ("nsubj" 20 18) ("aux" 20 19) ("rcmod" 17 20) ("prep" 20 21) ("det" 23 22) ("pobj" 21 23) ("prep" 23 24) ("poss" 26 25) ("pobj" 24 26))) ((<you 0,3> <think 4,9> <that 10,14> <'s 14,16> <bad 17,20> <, 20,21> <hehe 22,26> <, 26,27> <i 28,29> <remember 30,38> <once 39,43> <i 44,45> <had 46,49> <an 50,52> <old 53,56> <100MHZ 57,63> <dell 64,68> <unit 69,73> <i 74,75> <was 76,79> <using 80,85> <as 86,88> <a 89,90> <server 91,97> <in 98,100> <my 101,103> <room 104,108>))
ãããã£ãŠãã²ã©ããœã±ãããã°ããããã°ããã«ã¯ãSBCLãããã¯ãŒã¯ã³ãŒããæ·±ãæãäžããŠåŒã³åºãããé¢æ°ã調ã¹ãSLIMEçµç±ã§æ»ã«ãããŠãããµãŒããŒã«æ¥ç¶ãããããã®é¢æ°ã1ã€ãã€ãã¬ãŒã¹ããå¿ èŠããããŸããã ãããŠãç§ã¯æ»ã£ãŠããªãã£ãé»è©±ãåãããšã-ããã§ããã ãã®çµæãããã¥ã¢ã«ã§é¢æ°ãã¹ã¬ããã»ãŒãã§ã¯ãªãããšãçºèŠããSBCLãœãŒã¹ã³ãŒãã®ã³ã¡ã³ãã§ããã«é¢ããããã€ãã®èšåãæºãããåŸãèªåã®ä»®èª¬ã確信ããŸããã
ãã®èšäºã¯ãLispãç§ãã¡ã®æãéèŠãªãããžã§ã¯ãã®1ã€ã«å¯ŸããŠé©ãã»ã©ä¿¡é Œã§ãããã©ãããã©ãŒã ã§ããããšãã©ã®ããã«èšŒæããããã«ã€ããŠã§ãã ææ°ã®ã¯ã©ãŠãã€ã³ãã©ã¹ãã©ã¯ãã£ã®äžè¬çãªèŠä»¶ã«å®å šã«æºæ ããŠããããã®ã¹ã¿ãã¯ã¯ããŸãåºãç¥ãããŠããã人æ°ããããšããäºå®ã«ãããããããç¬èªã®é·æããããŸãã䜿çšæ¹æ³ãåŠã¶ã ãã§ååã§ãã è€éãªåé¡ã解決ããLispã¢ãããŒãã®åã«ã€ããŠãç§ãã¡ã¯äœãèšãããšãã§ããŸããã ããããããã¯å šãç°ãªã話ã§ã...
ã泚æ 翻蚳è ïŒ
CISã®äººã ãæ¬çªç°å¢ã§ã®Common Lispã®äœ¿çšã«ã€ããŠæžããŠããããšããããŠCISã®äººã ã§ããæžããŠããããšãäºéã«å¬ããæããŸãã ãã®èšäºãèªãã åŸã誰ãããã®éåžžã«éå°è©äŸ¡ãããŠããæè¡ã«æ³šæãæãããšãé¡ã£ãŠããŸãã