{"id":63,"date":"2006-12-16T02:25:46","date_gmt":"2006-12-16T02:25:46","guid":{"rendered":"http:\/\/newblog.mix1009.net\/?p=63"},"modified":"2006-12-16T02:25:46","modified_gmt":"2006-12-16T02:25:46","slug":"ocaml-%ea%b0%9c%eb%b0%9c-%ed%99%98%ea%b2%bd","status":"publish","type":"post","link":"https:\/\/mix1009.net\/?p=63","title":{"rendered":"\uc708\ub3c4\uc6b0\uc988\uc5d0\uc11c OCaml \uac1c\ubc1c \ud658\uacbd (tuareg)"},"content":{"rendered":"<p>\uc608\uc804\uc5d4 FreeBSD\uc5d0\uc11c vi\ub85c \uc791\uc5c5\ud588\uc5c8\ub294\ub370, Lisp\/Slime \ud658\uacbd\uc5d0 \uce5c\uc219\ud574\uc9c0\uba74\uc11c OCaml\uc5d0\uc11c\ub3c4 \ube44\uc2b7\ud55c \uac1c\ubc1c\ud658\uacbd\uc744 \ucc3e\uc544\ubcf4\uac8c \ub410\uc2b5\ub2c8\ub2e4. Emacs\uc678\uc5d0\ub3c4 \uba87\uac00\uc9c0 \ud1b5\ud569\uac1c\ubc1c\ud658\uacbd\uc774 \uc788\uc9c0\ub9cc \uc800\ub294 Emacs \uc704\uc5d0\uc11c \ub3cc\uc544\uac00\ub294 <a href=\"http:\/\/www-rocq.inria.fr\/%7Eacohen\/tuareg\/\">tuareg mode<\/a>\ub97c \ubc1b\uc544\uc11c \uc124\uce58\ud588\uc2b5\ub2c8\ub2e4. \uc800\ub294 \ub85c\uceec \uc708\ub3c4\uc6b0\uc988\uc5d0\uc11c Emacs\ub97c \uc0ac\uc6a9\ud558\uc9c0\ub9cc \uc720\ub2c9\uc2a4\uc5d0\uc11c\ub3c4 \ub3d9\uc77c\ud558\uac8c \uc0ac\uc6a9\ud560\uc218 \uc788\uc2b5\ub2c8\ub2e4. OCaml\uc740 mingw \uae30\ubc18\uc758 \uc124\uce58\ud30c\uc77c\uc744 \ubc1b\uc544\uc11c \uc124\uce58\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n<p>tuareg\ub294 <a href=\"http:\/\/www-rocq.inria.fr\/%7Eacohen\/tuareg\/mode\/tuareg-mode-1.46.1.zip\">tuareg-mode-1.46.1.zip<\/a>\ub97c \ubc1b\uc544\uc11c Emacs\uc758 site-lisp\uc5d0 \uc555\ucd95\uc744 \ud480\uc5c8\uc2b5\ub2c8\ub2e4. \uadf8\ub9ac\uace0\ub294 \ub2e4\uc74c\uc744 .emacs \ud30c\uc77c\uc5d0 \ucd94\uac00\ud574\uc8fc\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n<p>[CODE type=lisp](add-to-list &#8216;load-path &#8220;c:\/Progra~1\/emacs\/site-lisp\/tuareg-mode-1.46.1&#8221;)<br \/>\n(setq auto-mode-alist (cons &#8216;(&#8220;\\\\.ml\\\\w?&#8221; . tuareg-mode) auto-mode-alist))<br \/>\n(autoload &#8216;tuareg-mode &#8220;tuareg&#8221; &#8220;Major mode for editing Caml code&#8221; t)<br \/>\n(autoload &#8216;camldebug &#8220;camldebug&#8221; &#8220;Run the Caml debugger&#8221; t)<\/p>\n<p>(defvar tuareg-interactive-program &#8220;c:\/Progra~1\/Object~1\/bin\/ocaml&#8221;)<br \/>\n(defvar tuareg-library-path &#8220;c:\/Program Files\/Objective Caml\/lib&#8221;)<br \/>\n[\/HTML][\/CODE]<br \/>\ntuareg-interactive-program \uc9c0\uc815\ud560\ub54c&nbsp; Program Files\uc640 Objective Caml\ub4f1\uc73c\ub85c \ub123\uc73c\uba74 OCaml \uc2e4\ud589\uc774 \uc548\ub418\ub354\uad70\uc694.. \uc704 \uc0ac\ud56d\uc744 \uc801\uc6a9\ud558\uba74 ml\uc774\ub098 mli \ud30c\uc77c\uc744 \uc77d\uc744\ub54c tuareg-mode\ub85c \uc790\ub3d9\uc73c\ub85c \ub118\uc5b4\uac11\ub2c8\ub2e4.<\/p>\n<p>\ud0a4\ub294 Lisp\/Slime\uacfc \ub9ce\uc774 \uc720\uc0ac\ud558\uc9c0\ub9cc, Slime\ubcf4\ub2e4\ub294 \uc81c\uacf5\ud558\ub294\uac83\uc774 \uc801\ub124\uc694. C\ub294 Ctrl, M\uc740 Alt(Meta)\ud0a4 \uc785\ub2c8\ub2e4.<\/p>\n<div style=\"text-align: right\">\n<\/div>\n<ul>\n<li><span style=\"font-weight: bold\">C-x C-e<\/span>, <span style=\"font-weight: bold\">C-c C-e<\/span>, <span style=\"font-weight: bold\">C-M-x<\/span> : \uc138\uac00\uc9c0 \ud0a4\uc870\ud569 \ubaa8\ub450 \ud604\uc7ac expression\uc744 \uc2e4\ud589\ud569\ub2c8\ub2e4. OCaml\uc774 \uc2e4\ud589\uc911\uc774 \uc544\ub2c8\uba74 \uc2e4\ud589\ud569\ub2c8\ub2e4.<\/li>\n<li><span style=\"font-weight: bold\">C-c C-b<\/span> : \ud604\uc7ac \ubc84\ud37c(\ud30c\uc77c)\uc744 \uc2e4\ud589\ud569\ub2c8\ub2e4.<\/li>\n<li><span style=\"font-weight: bold\">C-c C-c<\/span> : make\ub97c \uc2e4\ud589\ud558\ub294\ub370 \ud504\ub85c\uc81d\ud2b8\uc5d0 \ub9de\ub294 Makefile\uc774 \uc788\uc5b4\uc57c\ud569\ub2c8\ub2e4.<\/li>\n<li><span style=\"font-weight: bold\">C-M-p<\/span>, <span style=\"font-weight: bold\">C-M-n<\/span> : (toplevel) expression \uc704\uc544\ub798\ub85c \uc774\ub3d9.<\/li>\n<li><span style=\"font-weight: bold\">C-c C-a<\/span> : ml\uacfc mli \uc0ac\uc774\ub97c \uc654\ub2e4\uac14\ub2e4 \ud569\ub2c8\ub2e4. \uc544\uc8fc \uc720\uc6a9\ud55c \uae30\ub2a5\uc774\ub124\uc694.\n<\/li>\n<\/ul>\n<p>\n\ub610 Emacs\uba54\ub274\uc5d0 Tuareg\uc5d0 \ubcf4\uba74 \uc5ec\ub7ec\uac00\uc9c0 \uae30\ub2a5\uc774 \uc81c\uacf5\ub429\ub2c8\ub2e4. Definition-Scan\uc744 \uc120\ud0dd\ud558\uba74 \ud604\uc7ac \ud30c\uc77c\uc5d0\uc11c \ubaa8\ub4e0 \uc815\uc758(type &amp; value)\ub97c \uc815\ub9ac\ud574\uc11c \uba54\ub274\uc5d0 \ubcf4\uc5ec\uc90d\ub2c8\ub2e4. \ub610 C-c . \uc73c\ub85c \uc2dc\uc791\ud558\ub294 \uba85\ub839\ub4e4\uc774 \uc788\ub294\ub370, \ub9ce\uc774 \uc0ac\uc6a9\ud558\ub294 \uad6c\uc808\ub4e4\uc744 \ube60\ub974\uac8c \uc785\ub825\ud560\uc218 \uc788\uac8c \ub3c4\uc640\uc90d\ub2c8\ub2e4. \ud55c\uac00\uc9c0 \uc544\uc26c\uc6b4\uc810\uc740 completion \uae30\ub2a5\uc774 \ub3d9\uc791\ud558\uc9c0 \uc54a\ub294\ub370, \uc65c \uadf8\ub7f0\uc9c0 \uc544\uc9c1 \ud30c\uc545\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4. \uba54\ub274\uc5d0 \ubcf4\uba74 \uad00\ub828 \ud56d\ubaa9\uc774 \uc788\ub294\ub370, \ud65c\uc131\ud654 \ub418\uc5b4\uc788\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \ub610\ud55c \ud0a4\ub3c4 \ud560\ub2f9\ub418\uc5b4 \uc788\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \uc18c\uc2a4\ub97c \ubcf4\uba74 C-c TAB( (define-key map [?\\C-c ?\\t] &#8216;tuareg-complete) \ub85c \ud560\ub2f9\ub418\uc5b4 \uc788\ub294\ub370, \uc774 \ud0a4\ub294 Interrupt Caml Toplevel\ub85c \ud560\ub2f9\ub418\uc5b4 \ubcf4\uc774\uace0, M-x tuareg-complete\ub85c \ud638\ucd9c\ud574\ub3c4 &#8220;Symbol&#8217;s function definition is void: caml-complete&#8221;\ub77c\ub294 \uba54\uc2dc\uc9c0\ub9cc \ucd9c\ub825\ub429\ub2c8\ub2e4.<\/p>\n<p>\uc880\ub354 \uc5f0\uad6c \ud574\ubd10\uc57c\uaca0\uc2b5\ub2c8\ub2e4&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uc608\uc804\uc5d4 FreeBSD\uc5d0\uc11c vi\ub85c \uc791\uc5c5\ud588\uc5c8\ub294\ub370, Lisp\/Slime \ud658\uacbd\uc5d0 \uce5c\uc219\ud574\uc9c0\uba74\uc11c OCaml\uc5d0\uc11c\ub3c4 \ube44\uc2b7\ud55c \uac1c\ubc1c\ud658\uacbd\uc744 \ucc3e\uc544\ubcf4\uac8c \ub410\uc2b5\ub2c8\ub2e4. Emacs\uc678\uc5d0\ub3c4 \uba87\uac00\uc9c0 \ud1b5\ud569\uac1c\ubc1c\ud658\uacbd\uc774 \uc788\uc9c0\ub9cc \uc800\ub294 Emacs \uc704\uc5d0\uc11c \ub3cc\uc544\uac00\ub294 tuareg mode\ub97c \ubc1b\uc544\uc11c \uc124\uce58\ud588\uc2b5\ub2c8\ub2e4. \uc800\ub294 \ub85c\uceec \uc708\ub3c4\uc6b0\uc988\uc5d0\uc11c Emacs\ub97c \uc0ac\uc6a9\ud558\uc9c0\ub9cc \uc720\ub2c9\uc2a4\uc5d0\uc11c\ub3c4 \ub3d9\uc77c\ud558\uac8c \uc0ac\uc6a9\ud560\uc218 \uc788\uc2b5\ub2c8\ub2e4. OCaml\uc740 mingw \uae30\ubc18\uc758 \uc124\uce58\ud30c\uc77c\uc744 \ubc1b\uc544\uc11c \uc124\uce58\ud588\uc2b5\ub2c8\ub2e4. tuareg\ub294 tuareg-mode-1.46.1.zip\ub97c \ubc1b\uc544\uc11c Emacs\uc758 site-lisp\uc5d0 \uc555\ucd95\uc744 \ud480\uc5c8\uc2b5\ub2c8\ub2e4. \uadf8\ub9ac\uace0\ub294 \ub2e4\uc74c\uc744 .emacs \ud30c\uc77c\uc5d0 \ucd94\uac00\ud574\uc8fc\uc5c8\uc2b5\ub2c8\ub2e4. [CODE type=lisp](add-to-list &#8216;load-path &#8220;c:\/Progra~1\/emacs\/site-lisp\/tuareg-mode-1.46.1&#8221;) [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[19],"tags":[25,38,53],"_links":{"self":[{"href":"https:\/\/mix1009.net\/index.php?rest_route=\/wp\/v2\/posts\/63"}],"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=63"}],"version-history":[{"count":0,"href":"https:\/\/mix1009.net\/index.php?rest_route=\/wp\/v2\/posts\/63\/revisions"}],"wp:attachment":[{"href":"https:\/\/mix1009.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=63"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mix1009.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=63"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mix1009.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=63"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}