2021-11-8
【Haskell】Hello Worldするまで
事前に知っておくべき用語
- GHC
- Haskellのコンパイラ
- HLS
- Haskell Language Server
- これを使ってエディタで補完など便利機能を使えるようにする
- Stack
- Node.jsで言うところのnpm
- GHCup
- 上記3つのソフトウェアをインストールするためのソフト
- Node.jsで言うところのnodenvみたいな感じ
GHCupのインストール
公式サイトの手順通りにインストールすればOK。
インストール後 ghcup list -c set
で現在設定されている各ツールが表示されている。ここに ghc,stack,hls
が表示されていればOK。
VSCodeにHaskell拡張を入れて補完等が働くように
HLSをインストールしたことで、VSCodeのHaskell拡張を入れることで色々便利機能が使えるようになるので入れておく。
プロジェクト作成~実行
# 適当なディレクトリに移動
cd [some-project-directory]
# プロジェクト作成
stack new [some-project-name]
# プロジェクトディレクトリに移動
cd [some-project-name]
# VSCodeを開く
code .
VSCodeでは src/Lib.hs
を以下のように書き換える。
module Lib
( someFunc
) where
someFunc :: IO ()
someFunc = putStrLn "Hello, world!"
改めてCUIで以下を実行。
# プロジェクトディレクトリにいることをまず確認
# ビルド
stack build
ビルドすると .stack-work/install
下に実行ファイルが作成される。
実行ファイルの名前は package.yaml
の executables
に記載されている。[プロジェクト名]-exe
になっているみたいで、プロジェクト名が sample-project
なら sample-project-exe
になる。
というわけで、最後に以下コマンドで実行すればOK。
stack exec [実行ファイル名]