TOPシステム開発> 【新・言語進化論】次にくる!新登場言語> 第1回:今勉強したい関数型言語「Haskell」 (2/3)




【新・言語進化論】次にくる!新登場言語

【新・言語進化論】次にくる!新登場言語

第1回:今勉強したい関数型言語「Haskell」

著者:シンクイット編集部

公開日:2007/11/5(月)

Windows版GHCでのプログラム実行とコンパイルの基本

Windows版の「ghc-6.8.1-i386-windows.exe」をダウンロードし、ウィザードの指示に従ってインストールすると、コンパイラの「GHC」とインタプリタの「GHCi」がそれぞれ利用できるようになる。なお英語版のHTML形式マニュアルが「スタート → GHC → 6.8.1 → GHC Documentation」に用意されているが、筆者の環境ではリンク切れとなっていた。元のHTMLファイルは「C:\ghc\ghc-6.8.1\doc」にある。

Haskellのソースコードには通常の形式と、コメントとコードが入れ替わった形式の2通りがある。それぞれ拡張子が「.hs」と「.lhs」となっており、明確に区別されている。

Haskellは純粋関数型言語であると述べた通り、プログラムは関数で構成されることになる。この点が、すでに何らかの非関数型言語を習得している人の移行を阻む原因となる。例えば、新しい言語を試す際に誰もが行う「Hello World」すら、引数を標準出力に返す関数を定義することで表現する。

画面にHello Worldを表示するプログラムは「main = putStrLn "Hello World"」と記述する。これはmainという変数に、"Hello World"という文字列を受け取ったputStrLn関数を定義する、といった内容のプログラムである。

Haskellプログラミングの流れ

この1行のプログラムを「test.hs」として保存して、対話型インタプリタのGHCiと、コンパイラのGHCをそれぞれテストしてみよう。

まずtest.hsファイルをGHCiにドラッグ&ドロップして読み込ませる。GHCiが起動するとコマンドプロンプトに「*Main>」と表示される。プロンプトに「main」と入力すると、main変数の評価(=プログラムの実行)が行われ、評価結果(=プログラムの実行結果)が表示される。

プロンプトで「:e」を入力すると、読み込んでいるプログラムをエディタで編集できる。編集後にエディタを終了し、プロンプトで「:r」を入力することで再読み込みを行える。このように対話型インタプリタで定義した関数をチェックし、修正箇所を変更しながらプログラミングを進めるのが、Haskellプログラミングの基本だ。

GHCiの終了は、プロンプトで「:quit」と入力する。そのほかのコマンドについてはプロンプトから「:?」を入力することで表示される。

対話型インタプリタによるテストを終えたら、GHCで実際のコンパイルを行う。「ghc test.hs -o helloworld.exe」のように指定すると、コンパイルが行われて「helloworld.exe」が作成される。「-o」で出力ファイル名を指定しない場合は常に「main.exe」となる。 次のページ



INDEX
第1回:今勉強したい関数型言語「Haskell」
  今勉強しておきたい新言語
Windows版GHCでのプログラム実行とコンパイルの基本
  Haskellとそれ以外の言語の大きな違い