Edited at

Mac に Homebrew で Haskell 入れて HelloWorld

More than 5 years have passed since last update.

OS は Mountain Lion、Homebrew は入ってる前提で。


インストール

「処理系」の GHC と、開発用プラットフォームをインストールする。

brew install ghc


==> Downloading http://www.haskell.org/ghc/dist/7.4.2/ghc-7.4.2-x86_64-apple-darwin.tar.bz2


################################################################## 100.0%

==> ./configure --prefix=/usr/local/Cellar/ghc/7.4.2

==> make install

==> Caveats

This brew is for GHC only; you might also be interested in haskell-platform.

==> Summary

/usr/local/Cellar/ghc/7.4.2: 6209 files, 842M, built in 18.9 minutes


20分弱かかった。

brew install haskell-platform


==> Downloading http://lambda.haskell.org/platform/download/2012.2.0.0/haskell-platform-2012


################################################################## 100.0%

==> ./configure --prefix=/usr/local/Cellar/haskell-platform/2012.2.0.0 --enable-unsupported-

==> EXTRA_CONFIGURE_OPTS="--libdir=/usr/local/Cellar/haskell-platform/2012.2.0.0/lib/ghc" ma

==> Caveats

Run cabal update to initialize the package list.

If you are replacing a previous version of haskell-platform, you may want

to unregister packages belonging to the old version. You can find broken

packages using:

ghc-pkg check --simple-output

You can uninstall them using:

ghc-pkg check --simple-output | xargs -n 1 ghc-pkg unregister --force

==> Summary

/usr/local/Cellar/haskell-platform/2012.2.0.0: 869 files, 174M, built in 13.4 minutes


全部で30分ほど。途中「ほんとに動いてんの?」って状態になったが焦らず放っておいたら終わってた。


対話式インタプリタを起動する

ghci


GHCi, version 7.4.2: http://www.haskell.org/ghc/ :? for help

Loading package ghc-prim ... linking ... done.

Loading package integer-gmp ... linking ... done.

Loading package base ... linking ... done.

Prelude>



ハロワ

Prelude> putStrLn "Hello, World"


Hello, World



GHCi の終了

意外と分からなかった。

:quit


Leaving GHCi.



【未解決】runhaskell で「lexical error (UTF-8 decoding error)」エラー

10分で学ぶHaskell - HaskellWiki にあった REPL じゃなくてソースをビルドして実行する方法でエラーが。


Test.hs

main = do putStrLn "What is 2 + 2?"

x <- readLn
if x == 4
then putStrLn "You're right!"
else putStrLn "You're wrong!"

を Test.hs で保存して、

ghc --make Test.hs

を実行して、Test, Test.hi, Test.o ファイルが生成される。

で、

runhaskell Test

とすると


Test:1:1: lexical error (UTF-8 decoding error)


というエラーが。よく分からないからとりあえず、

runghc Test.hs

で満足してる。まだ入り口にも立ってない気分。


参考