Haskellによるプログラム実行方法3パターン【Haskell, ghc, ghci, runghc, Helloworld!】

Haskellコンパイラ

HaskellのメインのコンパイラGHCと呼ばれます

GHCは(Glasgow Haskell Compiler)の略です。

ほかのコンパイラにはHugsと呼ばれるコンパイラが存在していますが、 GHCのほうがメジャーと言っていいでしょう。

Haskellの実行方法

GHCの実行方法は以下の3パターンがあります。

  • ghc : 早いネイティブコードを生成する最適化コンパイラghcで実行する際には、対象ソースをコンパイルした後、出来上がったバイナリファイルを実行する必要があります。
  • ghci : 対話型インタプリタデバッグやお試しなどで使います。
  • runghc : ghcと異なり、コンパイルの手順を踏まずにコードを実行する。2度手間ではないが、遅い。

ghciによる対話型インタプリタの起動

ghciを起動すると、Prelude>というプロンプトが現れます。 このプロンプトはbashpowershellのように、対話型のインタプリタです。

ghci > 2 + 4
6
ghci > "hello World"
"Hello"

ghciのインタプリタ:で始まる様々なオプションを使用することで、カスタマイズが可能になってます。

モジュールの利用

ちなみに、Preludeはモジュールの名前であり、関数やライブラリが標準インストールされています。 それ以外のモジュールをロードする際には、:moduleコマンドを使用します。

ghci > :module + random

これでrandomモジュールが使えるようになりました。

runghcによるスクリプト実行

コンパイルの手順を踏まずにコードを実行するには、runghcコマンドを活用してください。

  • 手順1 :まずは、以下のコードをmain.hsという名前で保存してください。
main = putStrLn "Hello World"
  • 手順2 :rungch main.hsと入力し、実行してください。

  • 手順3 :Hello Worldと表示されたら完了です。

ghcコマンドによる実行方法

この実行方法が最もオーソドックスな実行方法です。

  • 手順1 :まずは、以下のコードをmain.hsという名前で保存してください。
main = putStrLn "Hello World"
  • 手順2 :次に、main.hsと同じ階層までcdコマンドなどで移動してください。

  • 手順3 :次のコマンドを使用して、main.hsコンパイルします。

ghci main.hs
  • 手順4 :lsコマンドでコンパイルが出来たかどうかを確認します。新たにmainプログラムが作成されていればコンパイル完了です。

  • 手順5 :./mainコマンドで、先ほどコンパイルされたファイルを実行します。Hello Worldと出力されれば完了です。