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.yamlexecutables に記載されている。[プロジェクト名]-exe になっているみたいで、プロジェクト名が sample-project なら sample-project-exe になる。

というわけで、最後に以下コマンドで実行すればOK。

stack exec [実行ファイル名]