WindowsでHaskellはじめるよ

Haskellのインストール

stack setup

ghci と runghc と ghc

  1. ghci : 対話モードのインタプリタ実行
  2. runghc : スクリプトインタプリタ実行
  3. ghc : コンパイル

ghci の実行 (対話モード)

> stack ghci
ghci> 2+2
4
ghci> (+) 2 2
4
ghci> foldl1 (+) [1..10]
55
ghci> :q
Leaving GHCi.

runghc の実行 (スクリプト実行)

  • 下記のようなスクリプトを作成し、ファイル名を hello.hs とする。
main = putStrLn "Hello, world!"
> stack runghc hello.hs
Hello, world!

ghc の実行 (コンパイル)

> stack ghc hello.hs
[1 of 2] Compiling Main             ( hello.hs, hello.o )
[2 of 2] Linking hello.exe
> .\hello.exe
Hello, world!

プロジェクトの作成とビルド

  • hello という名前のプロジェクトを作成する。
> stack new hello
  • app/Main.hs に下記のようなコードが吐かれる。
module Main (main) where

import Lib

main :: IO ()
main = someFunc
  • src/Lib.hs に下記のようなコードが吐かれるので、少し改変してみる。
module Lib
    ( someFunc
    ) where

someFunc :: IO ()
someFunc = putStrLn "Hello, world!" -- "someFunc" から改変
  • ビルドする。
> cd .\hello
> stack build
  • 実行する。(プロジェクト名-exe で指定する。)
> stack exec hello-exe    # .exe ではなく -exe
Hello, world!
  • 実行ファイルは下記のようなディレクトリに出力されている。(ビルド時のメッセージに表示される。)
hello\.stack-work\install\xxxxxxxx\bin\hello-exe.exe