36
42

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Haskell 環境準備 (for Windows10)

Last updated at Posted at 2018-02-17

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。
こんな感じ。
ghci_test.png

:q
でghciから抜ける。

ghc

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

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

runghc

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

Haskell project

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

All done.

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

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

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

実行する実行ファイルは、
プロジェクトディレクトリ以下の
/.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)

取りあえずの確認用。

36
42
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
36
42

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?