Haskell 環境準備 (for Windows10)


Haskellの環境準備備忘録
仕事でHaskell使ってますが、プライベートでも使っていこうと思ってWindows環境にいれたので、そのメモ。

Install Haskell

HaskellのInstallは、stackでやるのがいい。

Stackのインストール

stackは、以下から
https://github.com/commercialhaskell/stack/releases
windows版(stack-1.6.3-windows-x86_64-installer.exeにした。)を落として来たらインストール。

Stackのsetup

stackがインストールできたら、プロンプト開いて
stack setup
を実行。

shellをリスタートしろ的なCAUTIONと、

[0mstack will use a sandboxed GHC it installed[0m
[0mFor more information on paths, see 'stack path' and 'stack exec env'[0m
[0mTo use this GHC and packages outside of a project, consider using:[0m
[0mstack ghc, stack ghci, stack runghc, or stack exec[0m

でてきて終了。
([0m これ文字化け?ANSIカラーのエスケープシーケンスだったみたいですね。windowsでは、7以降廃止されてて、今はansiconを入れないといけないみたい。)

Execute Haskell

ghci

stack ghci
で、起動。

ghciが入ってなかったら、まずインストールされる。
インストールが終わるとghciが起動する。

Prelude> 

が表示されたらOK。
こんな感じ。

:q
でghciから抜ける。

ghc

stack ghc ファイル名
で、実行。

buildされて、
~.hi
~.o
~.exe
が生成されるので、~.exeを実行。
こんな感じ。

runghc

stack runghc ファイル名
で、実行。
こんな感じ。

Haskell project

stack new プロジェクト名
で、新規プロジェクト作成。

All done.

が出たらOK。
プロジェクト名のディレクトリができてるはず。

作成されたプロジェクト名のディレクトリに移動して、
stack build
で、build。

stack exec プロジェクト名-exe
で、実行。
こんな感じ。

実行する実行ファイルは、
プロジェクトディレクトリ以下の
/.stack-work/dist/
の下を見たらいるはず。
(gdbとかでdebugしたいときは、それを起動すればいい。はず。)

おまけ

つかったfeb.hsは、こんな感じ。

feb.hs
main :: IO ()
main = do
  print $ feb 10
  return ()

feb :: Int -> Int
feb i
  | i == 0 = 1
  | i == 1 = 1
  | otherwise = feb (i-2) + feb (i-1)

取りあえずの確認用。