開発環境

VSCodeでHaskellの開発環境を構築する方法

VSCodeでHaskellの開発環境を構築する方法

VSCodeを利用してHaskell開発環境を構築する方法について解説します。

VSCodeでHaskell環境準備

VSCode(Visual Studio Code)は様々な言語でソフトウェアを開発するときに使用できるエディターで、マルチプラットフォームにも対応したものです。

VSCodeには、Haskell開発のためのHaskell拡張機能があり、多くの機能を利用することができます。

本記事では、VSCodeでHaskellプログラミングができる環境を構築する方法を説明します。なお、Haskell自体のインストールは別途必要です。Haskellのインストール方法については「Haskellのインストール方法 (Linux)」でまとめていますので参考にしてください。

VSCodeのインストール

VSCodeは、VSCodeダウンロードページからダウンロードしてインストールを実施してください。各環境ごとに用意されています。

VSCode ダウンロードページ
VSCodeダウンロードページ ※画面構成は変わっている可能性があります。

Haskell拡張のインストール

Haskell拡張機能をインストールします。VSCodeの画面から以下の手順でHaskell拡張機能をインストールしてください。

  1. 拡張タブを選択する。
  2. 検索窓で「haskell」と入力する。
  3. 検索された「Haskell」をクリックすると右側にHaskell拡張の説明が表示される。
  4. インストールをクリックしてHaskell拡張をインストールする。
VSCode Haskell拡張インストール

インストールを実行すると「Haskell」拡張と共に「Haskell Syntax Highlighting」拡張もインストールがされます。

簡単なプログラムで確認

VSCodeでの実行を簡単に見てみましょう。VSCodeでtest.hsというファイルを作成し、以下のプログラムを記載します。

-- Test用Haskellプログラム
-- main関数を開始
main = do
    -- テスト出力
    print "Hello World!"

VSCode上では、以下の画像ようにハイライトされてわかりやすく表示されます。

また、上記の「main::IO ()」の部分は、型シグネチャになっていますが、行番号が表示されていません。これは、入力されたプログラムに対して型推論の結果をVSCodeが表示してくれているものです。

Haskellは型推論があるとはいえ、型シグネチャを書くようにするほうがよい考え方です。「main::IO ()」の部分マウスオーバーしてクリックすると以下のようにコードとして反映してくれます。

上記の状態でtest.hsを保存しておきましょう。

コンパイルして実行

VSCodeで[ターミナル]-[新しいターミナル]をクリックして、ターミナルを開きます。test.hsのあるフォルダで以下コマンドを実行してみてください。

ghc test.hs

すると以下のような形でHaskellプログラムがコンパイルされます。

[1 of 2] Compiling Main             ( test.hs, test.o ) [Source file changed]
[2 of 2] Linking test [Objects changed]

コンパイルされたtest(Windowsの場合は、test.exe)を実行すると以下のように結果が確認できます。

./test
【実行結果】
"Hello World!"

このようにすることでVSCode上でHaskellのプログラミングが可能になります。

GHCiでロードして実行

GHCは、インタラクティブな対話シェルが用意されているため、以下のようにターミナル上で以下のように実行することも可能です。

ghci test.hs

上記を実行すると以下のように「ghci>」という部分が表示されます。ここで「main」と関数を指定してENTERを押すと結果が出力されます。

GHCi, version 9.4.8: https://www.haskell.org/ghc/  :? for help
[1 of 2] Compiling Main             ( test.hs, interpreted )
Ok, one module loaded.
ghci> main
"Hello World!"

また、以下の例のようにghciを先に起動しておいて、「:l」でファイルをロードしても構いません。

GHCi, version 9.4.8: https://www.haskell.org/ghc/  :? for help
ghci> :l test.hs
[1 of 2] Compiling Main             ( test.hs, interpreted )
Ok, one module loaded.
ghci> main
"Hello World!"

なお、GHCiから抜ける場合には、「:q」をクリックすることで抜けることができます。

GHCiを使うことでモジュール分割されたファイルの関数を個別に動作確認するといったことも可能となるため非常に便利です。Haskellでは、GHCiで各モジュールの関数を動作確認し、確認が終わったら、GHCでコンパイルするという開発の流れが一般的です。

まとめ

VSCodeを利用してHaskell開発環境を構築する方法について解説しました。

VSCodeには、Haskell拡張やHaskell Syntax Highlighting拡張といったものが用意されており、VSCode拡張機能の追加から簡単に追加できます。

VSCodeを使ったHaskell開発環境の構築の参考にしていただければと思います。