{"id":44,"date":"2006-10-17T09:30:38","date_gmt":"2006-10-17T09:30:38","guid":{"rendered":"http:\/\/newblog.mix1009.net\/?p=44"},"modified":"2006-10-17T09:30:38","modified_gmt":"2006-10-17T09:30:38","slug":"%ec%9c%88%eb%8f%84%ec%9a%b0%ec%a6%88%ec%97%90%ec%84%9c-lisp-%ea%b0%9c%eb%b0%9c-%ed%99%98%ea%b2%bd","status":"publish","type":"post","link":"https:\/\/mix1009.net\/?p=44","title":{"rendered":"\uc708\ub3c4\uc6b0\uc988\uc5d0\uc11c Common Lisp \uac1c\ubc1c \ud658\uacbd \uac16\ucd94\uae30"},"content":{"rendered":"<p>\uc0ac\uc6a9 \uc18c\ud504\ud2b8\uc6e8\uc5b4: Emacs, CLISP, SLIME, HyperSpec<\/p>\n<p><strong>1. Emacs<\/strong>: \uac15\ub825\ud55c \uc5d0\ub514\ud130.<br \/>\nNqmacs \ubc84\uc804\uc73c\ub85c Emacs 22.1\uc774 \ub420 \uac1c\ubc1c\ubc84\uc804\uc744 \ucef4\ud30c\uc77c\ud55c Win32 \ubc30\ud3ec\ubcf8\uc744 \uc124\uce58\ud569\ub2c8\ub2e4.<br \/>\n<a href=\"http:\/\/sourceforge.net\/project\/showfiles.php?group_id=92168\">http:\/\/sourceforge.net\/project\/showfiles.php?group_id=92168<\/a> \uc5d0\uc11c<br \/>\n<font color=\"#0033cc\">emacs-22.0.50.1-20050626-w32.zip<\/font>\ub97c \ub2e4\uc6b4\ub85c\ub4dc \ud558\uc5ec \uc801\ub2f9\ud55c \ub514\ub809\ud1a0\ub9ac\uc5d0 \uc555\ucd95\ud480\uba74 \ub429\ub2c8\ub2e4.<br \/>\n\uc800\ub294 C:\\Program Files\\emacs\uc5d0 \uc124\uce58\ud588\uc2b5\ub2c8\ub2e4.<br \/>\n\uc2e4\ud589\uc740 bin \ub514\ub809\ud1a0\ub9ac \ubc11\uc5d0 runemacs\ub97c \uc2e4\ud589\ud558\uba74 \ub418\uace0, \ud544\uc694\ud560 \uacbd\uc6b0 \ubc14\ud0d5\ud654\uba74\uc774\ub098 \uc2dc\uc791 \uba54\ub274\uc5d0 \ubc14\ub85c\uac00\uae30\ub97c \ub9cc\ub4e4\uc5b4\uc8fc\uba74 \ub429\ub2c8\ub2e4.<\/p>\n<p><strong>2. Common LISP<\/strong>: Emacs\ub294 LISP\ub85c \uc9dc\uc5ec\uc84c\uc9c0\ub9cc, Common LISP(\uc774\ud558 CL)\ub97c \uc0ac\uc6a9\ud558\uae30 \uc704\ud574\uc11c\ub294 \ub530\ub85c CL\uc744 \uc124\uce58\ud574\uc57c\ud569\ub2c8\ub2e4. \uacf5\uac1c CL \uc911\uc5d0 CLISP, SBCL\uc744 \ub9ce\uc774 \uc4f0\ub294\uac70 \uac19\uc740\ub370, \uc5ec\uae30\uc11c\ub294 CLISP\ub97c \uc124\uce58\ud569\ub2c8\ub2e4.<br \/>\n<a href=\"https:\/\/sourceforge.net\/project\/showfiles.php?group_id=1355\">https:\/\/sourceforge.net\/project\/showfiles.php?group_id=1355<\/a><br \/>\n\uc5d0\uc11c<br \/>\n<font color=\"#0000ff\">clisp-2.41-win32-mingw-without-readline.zip<\/font>\ub97c \ub2e4\uc6b4\ub85c\ub4dc \ud558\uc5ec C:\\Program Files\uc5d0 \uc555\ucd95\uc744 \ud480\uc5c8\uc73c\uba70, \uc124\uce58\ub294 \ub530\ub85c \ud544\uc694\uc5c6\uace0 Emacs \uc124\uc815\uc5d0\uc11c LISP \ud504\ub85c\uadf8\ub7a8\ub9cc \uc124\uc815\ud574\uc8fc\uba74 \ub429\ub2c8\ub2e4. \uc544\ub798 .emacs\uc5d0 \ub300\ud574\uc11c \uc124\uba85 \ucc38\uc870\ud558\uc138\uc694.<\/p>\n<p><strong>3. SLIME<\/strong>: Emacs \ub0b4\uc5d0\uc11c CL \uac1c\ubc1c \ud658\uacbd\uc744 \ub9cc\ub4e4\uc5b4\uc8fc\ub294 \ud50c\ub7ec\uadf8\uc778. CLISP, SBCL\ub4f1 \ub300\ubd80\ubd84\uc758 CL\uc744 \uc9c0\uc6d0\ud569\ub2c8\ub2e4.<br \/>\n\uc790\uc8fc \uc5c5\ub370\uc774\ud2b8 \ub418\uae30 \ub54c\ubb38\uc5d0 CVS \ubc84\uc804\uc744 \uc0ac\uc6a9\ud560 \uac83\uc744 \uad8c\uc7a5\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc0ac\uc6a9\uc911\uc5d0\ub3c4 \uc548\ub418\ub294\uac8c \uc788\uc73c\uba74 CVS\uc5c5\ub370\uc774\ud2b8\uce58\ub77c\uace0 \ud558\ub354\ub77c\uace0\uc694.<br \/>\n<a href=\"http:\/\/common-lisp.net\/project\/slime\/\">http:\/\/common-lisp.net\/project\/slime\/<\/a> \uc5d0\uc11c \uc124\uce58 \uad00\ub828 \uc815\ubcf4\ub97c \ucc3e\uc744\uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<blockquote><p>CVSROOT\ub294&nbsp; :pserver:anonymous@common-lisp.net:\/project\/slime\/cvsroot<br \/>\n\uc554\ud638\ub294 anonymous<br \/>\n\ubaa8\ub4c8\uc740 slime\n<\/p><\/blockquote>\n<p>emacs\/site-lisp\uc5d0\uc11c \uccb4\ud06c\uc544\uc6c3\ud558\uba74 \ub429\ub2c8\ub2e4. \uc800\ub294 TortoiseCVS\ub97c \uc0ac\uc6a9\ud558\uc5ec \uccb4\ud06c\uc544\uc6c3\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n<p><strong>4. HyperSpec<\/strong>: Common Lisp HyperSpec (CLHS)\ub294 CL \ud504\ub85c\uadf8\ub7a8\uc744 \uc791\uc131\ud558\uba74\uc11c API\ub97c \uc870\ud68c\ud560\uc218 \uc788\ub294 HTML \ubb38\uc11c\uc785\ub2c8\ub2e4. clisp\uac00 \uc124\uce58\ub41c doc \ub514\ub809\ud1a0\ub9ac \ubc11\uc5d0 \uc124\uce58\ud558\uba74 \ub429\ub2c8\ub2e4.<br \/>\n<a href=\"http:\/\/www.lispworks.com\/documentation\/HyperSpec\/\">http:\/\/www.lispworks.com\/documentation\/HyperSpec\/<\/a> \uc5d0\uc11c \ubc11\uc5d0 \ubcf4\uc2dc\uba74 download\uac00 \uc788\uc2b5\ub2c8\ub2e4. tar.gz \ud30c\uc77c\uc778\ub370 \ubc1b\uc544\uc11c \uc801\ub2f9\ud788 \ud480\uc5b4\uc8fc\uba74 \ub429\ub2c8\ub2e4. \ub514\ub809\ud1a0\ub9ac \uad6c\uc870\ub294 \uc544\ub798\ucc98\ub7fc \ub418\uba74 \ub429\ub2c8\ub2e4.<\/p>\n<blockquote><p>clisp-2.41<br \/>\n&nbsp; doc<br \/>\n&nbsp; &nbsp;HyperSpec<br \/>\n&nbsp; &nbsp; &nbsp;&nbsp; Body<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;Data<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;Front<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;Graphics<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;Issues\n<\/p><\/blockquote>\n<p>\uc77c\ub2e8 \uc774\ub807\uac8c \ud558\uba74 \uc124\uce58\ub294 \ub05d\ub0ac\uace0 \uc124\uc815\ub9cc \ub0a8\uc558\uc2b5\ub2c8\ub2e4. \uc124\uc815\uc740 c:\\.emacs \ud30c\uc77c\uc744 \ub9cc\ub4e4\uc5b4\uc8fc\uba74 \ub429\ub2c8\ub2e4.<\/p>\n<p>\uc81c .emacs \ud30c\uc77c\uc744 \uacf5\uac1c\ud569\ub2c8\ub2e4 \ud83d\ude42 C:\\.emacs \uc5d0 \uc800\uc7a5\ud574\uc8fc\uba74 \ub429\ub2c8\ub2e4.<\/p>\n<p>\uba3c\uc800 \ud55c\uae00 \uad00\ub828 \uc124\uc815 (\uc804 \uc138\ubc8c\uc2dd \uc0ac\uc6a9\uc790!):<\/p>\n<blockquote>\n<p>;; \ud55c\uae00\ud658\uacbd \uc124\uc815<br \/>\n(set-language-environment &#8220;UTF-8&#8221;)<br \/>\n(setq default-input-method &#8220;korean-hangul3&#8221;)<br \/>\n(set-input-method &#8220;korean-hangul3&#8221;)<br \/>\n(prefer-coding-system &#8216;utf-8-dos)<br \/>\n(utf-translate-cjk-load-tables)<\/p>\n<p>;; \uae00\ub85c\ubc8c \ud3f0\ud2b8\ub77d \uc124\uc815<br \/>\n(global-font-lock-mode 1 t)<\/p>\n<p>;; \ud55c\uc601\uc804\ud658 shift-space\ub85c \ud558\uae30<br \/>\n(global-set-key [?\\S- ] &#8216;toggle-input-method)<\/p>\n<\/blockquote>\n<p>shift-space\ub85c \ud55c\uc601 \uc804\ud658\ud558\uba74 \ud55c\uae00\uc870\ud569\ud558\ub294\uac8c \uc774\ub9e5\uc2a4\ucc3d \ub0b4\uc5d0\uc11c \ubcf4\uc774\uace0, \uc708\ub3c4\uc6b0\uc988 \ud55c\/\uc601\ud0a4\ub97c \uc774\uc6a9\ud558\uba74 \uc870\ud569\ud560\ub54c \ub2e4\ub978\uacf3\uc5d0 \ubcf4\uc774\uae30 \ub54c\ubb38\uc5d0 \ubd88\ud3b8\ud569\ub2c8\ub2e4.<\/p>\n<p>\ub9ac\uc2a4\ud504 \uc124\uc815: <\/p>\n<blockquote>\n<p>;; inferior lisp<br \/>\n(setq inferior-lisp-program &#8220;c:\/Progra~1\/clisp-2.41\/base\/lisp.exe -M c:\/Progra~1\/clisp-2.41\/base\/lispinit.mem&#8221;<br \/>\n&nbsp; &nbsp;&nbsp; lisp-indent-function &#8216;common-lisp-indent-function<br \/>\n&nbsp; &nbsp;&nbsp; slime-complete-symbol-function &#8216;slime-fuzzy-complete-symbol<br \/>\n&nbsp; &nbsp;&nbsp; slime-startup-animation nil)<\/p>\n<p>;; slime<br \/>\n(add-to-list &#8216;load-path &#8220;c:\/Progra~1\/emacs\/site-lisp\/slime&#8221;)<br \/>\n(require &#8216;slime)<br \/>\n(slime-setup)<\/p>\n<p>(setq common-lisp-hyperspec-root &#8220;c:\/Progra~1\/clisp-2.41\/doc\/HyperSpec\/&#8221;)<br \/>\n;(setq common-lisp-hyperspec-root &#8220;<a href=\"http:\/\/www.lispworks.com\/documentation\/HyperSpec\/\">http:\/\/www.lispworks.com\/documentation\/HyperSpec\/<\/a>&#8220;)<\/p>\n<\/blockquote>\n<p>inferior-lisp\ub77c\uace0 \ub418\uc5b4\uc788\ub294\uac74 emacs lisp\uac00 \ub354 \uc88b\ub2e4\ub294 \uc758\ubbf8\uc5d0\uc11c \ub098\uc628\uac8c \uc544\ub2d0\uae4c \uc0dd\uac01\uc774 \ub4dc\ub124\uc694. \uc9c0\uae08 \ucc3e\uc544\ubcf4\ub2c8 emacs \ubc11\uc5d0 \ubd99\ub294\ub2e4\uace0 \ud574\uc11c inferior\uc778\uac70 \uac19\ub124\uc694&#8230; hyperspec\uc740 LISP \uc628\ub77c\uc778 \ubb38\uc11c\uc785\ub2c8\ub2e4. LISP \ubc30\uc6b0\uc2e4\ub824\uba74 \ub85c\uceec\uc5d0 \uc124\uce58\ud558\ub294\uac83\uc774 \uc88b\uc8e0.<\/p>\n<p>\uae30\ud0c0 \uc124\uc815:<\/p>\n<blockquote>\n<p>;(setq visible-bell t)<br \/>\n;(setq sound-alist &#8216;(t 1))<br \/>\n;(setq bell-volume 10)<\/p>\n<p>(global-set-key &#8220;%&#8221; &#8216;match-paren)<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; <br \/>\n(defun match-paren (arg)<br \/>\n&nbsp; &#8220;Go to the matching paren if on a paren; otherwise insert %.&#8221;<br \/>\n&nbsp; (interactive &#8220;p&#8221;)<br \/>\n&nbsp; (cond ((looking-at &#8220;\\\\s\\(&#8220;) (forward-list 1) (backward-char 1))<br \/>\n((looking-at &#8220;\\\\s\\)&#8221;) (forward-char 1) (backward-list 1))<br \/>\n(t (self-insert-command (or arg 1)))))<\/p>\n<p>(setq make-backup-files t)<\/p>\n<\/blockquote>\n<p>\uc55e\uc5d0 \uc138\uc904\uc740 \uc624\ub958\ub0a0\ub54c \uc18c\ub9ac\ub098\ub294\uac70 \uc870\uc808\ud560\uc218\uc788\ub294\ub370, \uc9c0\uae08\uc740 \uc8fc\uc11d\ucc98\ub9ac\ub418\uc5b4 \uc788\ub124\uc694. vi\uc5d0\uc11c \ucc98\ub7fc %\ub85c \uad04\ud638\uac04 \uc774\ub3d9\ud560\uc218 \uae30\ub2a5\uc774 \uad6c\ud604\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. \ucee4\uc11c\uac00 \uad04\ud638\uc704\uc5d0 \uc788\uc744\ub54c\ub9cc \ub3d9\uc791\ud569\ub2c8\ub2e4.<\/p>\n<p>.emacs \ud30c\uc77c\uc5d0 \ub354 \ub0b4\uc6a9\uc774 \uc788\uae34 \ud55c\ub370, \ub098\uba38\uc9c0\ub294 \uc0ac\uc6a9\ud558\uba74\uc11c \uc790\ub3d9\uc73c\ub85c Emacs\uc5d0\uc11c \ucd94\uac00\ud574\uc900 \uc124\uc815 \ub0b4\uc6a9\uc774\ub77c \uacf5\uac1c \uc548\ud569\ub2c8\ub2e4.<\/p>\n<p>\uadf8\ub9ac\uace0 Slime \uc2dc\uc791\ud560\ub54c \uc57d\uac04 \uc624\ub958\uac00 \ub098\ub294\ub370 slime.el \ud30c\uc77c\uc744 \uc57d\uac04 \ubc14\uafd4\uc918\uc57c\ud569\ub2c8\ub2e4. CVS\uc5d0 \ub530\ub77c\uc11c \ub77c\uc778\uc740 \uc57d\uac04 \ub2e4\ub97c\uc218 \uc788\uc9c0\ub9cc \ud604\uc7ac\ub294 1890\ubc88\uc904\uc5d0\uc11c<\/p>\n<blockquote><p><strong>&#8216;(iso-latin-1-unix iso-8859-1-unix binary))<br \/>\n<\/strong><\/p>\n<div align=\"left\">&nbsp; &nbsp; &nbsp;&nbsp; &#8211;&gt;<br \/>\n<strong>&#8216;(utf-8-unix emacs-mule-unix binary)) <br \/>\n<\/strong><\/div>\n<\/blockquote>\n<p>\uc704 \ucc98\ub7fc \ubc14\uafd4\uc8fc\uba74 \uc815\uc0c1\uc801\uc73c\ub85c slime\uc774 \uc2dc\uc791\ub429\ub2c8\ub2e4. \uace0\uce5c \ubc29\ubc95\uc774 \uc815\uc0c1\uc801\uc778 \ubc29\ubc95\uc778\uc9c0\ub294 \uc800\ub3c4 \ubaa8\ub974\uc9c0\ub9cc, \uc544\uc9c1\uae4c\uc9c4 \ubb38\uc81c\uc5c6\uc774 \uc798 \ub3cc\ub9ac\uace0 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uadf8\ub7fc \ubaa8\ub4e0 \uc124\uce58\uac00 \uc644\ub8cc\ub418\uc5c8\uc73c\ub2c8 runemacs\ub85c Emacs\ub97c \uc2e4\ud589\ud558\uace0 &#8220;M-x slime&#8221; \ud558\uba74 REPL\uc774 \ub728\uace0 LISP\ub97c \ubc14\ub85c \uc0ac\uc6a9\ud560\uc218 \uc788\uc2b5\ub2c8\ub2e4. lisp \ud30c\uc77c \ud3b8\uc9d1\uc911 C-c C-c\ub85c \ud604\uc7ac \uc704\uce58\uc758 S-exp\uc744 LISP\ub85c \ubcf4\ub0bc\uc218 \uc788\uc73c\uba70, C-x C-e\ub85c \ucee4\uc11c \ubc14\ub85c \uc774\uc804 S-exp\ub97c \ubd80\ubd84\uc801\uc73c\ub85c \uc2e4\ud589\ud574 \ubcfc\uc218 \uc788\uc2b5\ub2c8\ub2e4. \ud3b8\uc9d1\uc911 C-c C-z\ub85c REPL\ub85c \ub2e4\uc2dc \uac08\uc218 \uc788\uc2b5\ub2c8\ub2e4. SLIME \uae30\ub2a5\uc774 \ub9ce\uae30 \ub54c\ubb38\uc5d0 \uc880\ub354 \uacf5\ubd80\ud574\uc11c \ub2e4\uc74c\uc5d0 \ub2e4\uc2dc \uc124\uba85\ud558\uaca0\uc2b5\ub2c8\ub2e4.^^<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uc0ac\uc6a9 \uc18c\ud504\ud2b8\uc6e8\uc5b4: Emacs, CLISP, SLIME, HyperSpec 1. Emacs: \uac15\ub825\ud55c \uc5d0\ub514\ud130. Nqmacs \ubc84\uc804\uc73c\ub85c Emacs 22.1\uc774 \ub420 \uac1c\ubc1c\ubc84\uc804\uc744 \ucef4\ud30c\uc77c\ud55c Win32 \ubc30\ud3ec\ubcf8\uc744 \uc124\uce58\ud569\ub2c8\ub2e4. http:\/\/sourceforge.net\/project\/showfiles.php?group_id=92168 \uc5d0\uc11c emacs-22.0.50.1-20050626-w32.zip\ub97c \ub2e4\uc6b4\ub85c\ub4dc \ud558\uc5ec \uc801\ub2f9\ud55c \ub514\ub809\ud1a0\ub9ac\uc5d0 \uc555\ucd95\ud480\uba74 \ub429\ub2c8\ub2e4. \uc800\ub294 C:\\Program Files\\emacs\uc5d0 \uc124\uce58\ud588\uc2b5\ub2c8\ub2e4. \uc2e4\ud589\uc740 bin \ub514\ub809\ud1a0\ub9ac \ubc11\uc5d0 runemacs\ub97c \uc2e4\ud589\ud558\uba74 \ub418\uace0, \ud544\uc694\ud560 \uacbd\uc6b0 \ubc14\ud0d5\ud654\uba74\uc774\ub098 \uc2dc\uc791 \uba54\ub274\uc5d0 \ubc14\ub85c\uac00\uae30\ub97c \ub9cc\ub4e4\uc5b4\uc8fc\uba74 \ub429\ub2c8\ub2e4. 2. Common LISP: Emacs\ub294 LISP\ub85c \uc9dc\uc5ec\uc84c\uc9c0\ub9cc, Common [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[19],"tags":[25,26,27],"class_list":["post-44","post","type-post","status-publish","format-standard","hentry","category-19","tag-emacs","tag-lisp","tag-slime"],"_links":{"self":[{"href":"https:\/\/mix1009.net\/index.php?rest_route=\/wp\/v2\/posts\/44","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mix1009.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mix1009.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mix1009.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mix1009.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=44"}],"version-history":[{"count":0,"href":"https:\/\/mix1009.net\/index.php?rest_route=\/wp\/v2\/posts\/44\/revisions"}],"wp:attachment":[{"href":"https:\/\/mix1009.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=44"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mix1009.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=44"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mix1009.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=44"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}