1. 最近気になる「関数型言語」
新しい言語を勉強しようと思う。最近の流行を調べたら、
がホットなようだ。以前から List や Scheme には興味があった。しかし、敷居が高くて手をつけることができなかった。
Haskell
最近、Haskell の入門書が出版された。この本を手始めにして、Haskell を学ぶことにした。
Erlang
Haskell 以外に、関数型言語として注目されているのは Erlang 。
twitterブームの陰で注目を集める"Erlang" - @IT によると、
twitterでは、メッセージングシステムに"ejabberd"を使っているという。これは"Erlang"で書かれたIMサーバだ。
Erlangは並列処理に適したプログラミング言語で、1987年に登場し、1998年にはオープンソース化されているので新しく登場した言語というわけではないが、時流に乗る形で、現在にわかに注目を集め始めている。Rubyの開発者として知られる、まつもとゆきひろ氏も、4月18日の" 「次」の言語"と題したブログのエントリで「次にくるトレンドは『関数型』と『並列』。両方を押さえたErlangが本命。歴史も信頼性もあり、知名度上昇中」と、次にメジャーになりうる言語の本命にErlangの名前を挙げている。
このような評価を目にしたことも、関数型言語をはじめようとしたキッカケとなった。
OCaml
Haskell と並んで気になるのは、
できれば OCaml プログラミング入門 も読んでみたい。
最初に読みたい論文
関数型言語を学ぶなら、
は押えておきたい。
2. コンパイラのインストール
以下のいずれかをインストール。
3. Emacs の設定
Haskell を書くためのエディタとして Emacs を利用する。Windows 上では Meadow を使った。
を参考に
haskell-mode
の設定をした。load-path を自分の環境に合わせて変更した。
haskell-mode
Haskell Mode for Emacs によると、haskell-mode は Emacs Lisp packages から最新のものを取得できるとのこと。インストールの方法については、以下を参照。
haskell-mode からダウンロードしたファイルを解凍して、フォルダ名を haskell-mode に変更。 C:\meadow\site-lisp に配置した。
~/.emacs には、以下を追加。
(load "/meadow/site-lisp/haskell-mode-2.4/haskell-site-file") (add-hook 'haskell-mode-hook 'turn-on-haskell-doc-mode) (add-hook 'haskell-mode-hook 'turn-on-haskell-indent)
追記 (2009.12.27) : Dropbox に Emacs のライブラリを置いたのに伴い、haskell-mode も Dropbox に置くことに。上記の load … の一文を次のように書き換えた。
(load "~/My Documents/My Dropbox/elisp/haskell-mode/haskell-site-file.el")
haskell-mode 使える関数を予め describe-mode で確認しておくと良い。
4. Emacs でプログラムの実行
コンパイルする場合
プログラムをコンパイルするには、今マンドラ以上で、
ghc プログラム名 -o プログラム名
(プログラムの拡張子は、.hs を用いる。)
Emacs では、M-! または M-| を入力した後、Shell command から行う。
プログラムを実行するには、Shell command から、
プログラム名
を入力する。
ghci を利用する場合
プログラムの実行結果をすぐに見たいときは、コンパイルしない。
Shell command から
runghc プログラム名
とすると、実行させることができる。
Emacs を利用している場合、
C-c C-l
により、GHCi が起動する。runghc よりも楽にプログラムを実行できる。
追記 (2009.12.21) : 新しいバージョンをインストールした直後に C-c C-l すると、
… no such file or directory, hugs
というエラーが表示される。この場合、ghci へのパスを設定した後、再ログインし、新しい ghci へのパスをプログラムが認識できるようにする必要がある。
0コメント:
コメントを投稿