Clojureを使ってみる
最近ちょこちょことClojureを使ってみています。動機は関数型言語を一度使ってみようと思い他にHaskell, Scalaなど有名どころがありますが、普段からEmacsを使っているのでついでにlispにも慣れることができるので、とりあえずClojureを使っています。
Clojureを使うのに文法の色付けとREPLの環境は最低元欲しいので、Emacsの設定を以下にまとめました。環境はMac OS X Lionです。
必要なものは、clojure-mode, nrepl.elとtools.nreplです、それぞれ以下のサイトで配布されています。あとPareditも一応入れておきます。
インストール方法は、参考にした ここ の手順に従って進めます。
Clojureの環境を作成
まず、Clojureの環境をセットアップします。Clojure, Leiningen2, プロジェクトの作成と進めます。
Clojureのインストールは、Homebrewに最新版があるのでそれをインストールします。
$ brew install clojure
Leiningen2はHomebrewにないので(あるのはLeningen1)、配布元から直接インストールします。leinコマンドはPATHの通った所にインストールします。
$ cd ~/bin $ wget https://raw.github.com/technomancy/leiningen/preview/bin/lein $ chmod 755 lein
最後にClojureのプロジェクトを作成します。プロジェクトを保存する任意のフォルダに作成して下さい。
$ cd ~/projects $ lein new testclj
EmacsにClojureの環境を設定
必要なEmacsのパッケージは、marmaladeリポジトリから全てインストール可能なようです。Emacs24を使っているのでpackage.elを使うことにします。init.elに以下の設定を追加して再起動するとパッケージのインストールは完了です。
(require 'package) (add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/")) (package-initialize) (when (not package-archive-contents) (package-refresh-contents)) (defvar my-packages '(clojure-mode nrepl paredit)) (dolist (p my-packages) (when (not (package-installed-p p)) (package-install p)))
次にClojureとEmacsの通信を制御するtools.nreplをプロジェクトに設定します。~/projects/testclj/project.cljのdependenciesに追加します。
(defproject testclj "0.1.0-SNAPSHOT" :description "FIXME: write description" :url "http://example.com/FIXME" :license {:name "Eclipse Public License" :url "http://www.eclipse.org/legal/epl-v10.html"} :dependencies [[org.clojure/clojure "1.4.0"] [org.clojure/tools.nrepl "0.2.0-beta9"]])
以上で設定が完了です。プロジェクトのファイルを開いて、M-x nrepl-jack-inを実行するとREPLバッファが開きます。このバッファからClojureのコマンドを実行できたりEmacsから制御できるようになります。
blog comments powered by Disqus