ghc -e 'putStr "Hello, World!"'
echo 'main = putStr "Hello, World!"' > hello.hs ghc -e main hello.hs または ghc hello.hs -e main
hello.hs に
#!/usr/bin/runghc main = putStr "Hello, World!"
と書いて chmod 755 hello.hs して ./hello.hs
Fedora 17 の home 以下に GHC とHaskell Platform をインストールの、ちょっと手を入れる必要があったのでメモ。
GHC で libgmp.so.3 が必要だけれど無いので libgmp.so.10 にシンボリックリンクを作ってごまかす。
mkdir ~/lcoal/lib cd ~/local/lib ln -s /usr/lib64/libgmp.so.10 libgmp.so.3 export LD_LIBRARY_PATH=$HOME/local/lib
cd ~/install wget http://www.haskell.org/ghc/dist/7.6.3/ghc-7.6.3-x86_64-unknown-linux.tar.bz2 tar jxvf ghc-7.6.3-x86_64-unknown-linux.tar.bz2 cd ghc-7.6.3 ./configure --prefix=$HOME/local/ghc-7.6.3 make install ~/local/ghc-7.6.3/bin/ghci # インタプリタ起動してみる。 PATH=$PATH:$HOME/local/ghc-7.6.3/bin
cd ~/install wget http://lambda.haskell.org/platform/download/2013.2.0.0/haskell-platform-2013.2.0.0.tar.gz tar zxvf haskell-platform-2013.2.0.0.tar.gz cd haskell-platform-2013.2.0.0 ./configure --prefix=$HOME/local/haskell-platform-2013.2.0.0
OpenGL 関連のライブラリが入っていないホストで、かつとりあえず必要無さそうので適当に消す(なんで OpenGL いるのー)。
あとこのままだと GHC_PACKAGE_PATH 云々とエラーが出て止まるので script/build.sh をいじる。 以下をコメントアウト。
GHC_PACKAGE_PATH="${ORIG_GHC_PACKAGE_PATH}" \
あとは configure を作り直してビルド。
./autoconf ./configure --prefix=$HOME/local/haskell-platform-2013.2.0.0 make make install PATH=$PATH:$HOME/local/haskell-platform-2013.2.0.0/bin
ぼちぼち Haskell を実行してみたり。すごいH本だと ghci で対話モードでの例示が多いんだけれど、個人的にかったるい。
UNIX ならワンライナーでしょ shebang でしょ。で確認したら GHC の ghci の方じゃなくて ghc の方でワンライナーはできるのね。
ghc -e 'putStr "Hello, World!"'
それと shebang での実行は runghc を使えば OK だった。
#!/usr/bin/runghc main = putStr "Hello, World!"
みたいな感じ。
reveal.js でスライド作ったんだけれど、そういえばと思って Firefox と Internet Explorer で表示確認したらまともじゃなかった。Google Chrome で確認しながら作っていたので気がつかなかった。むむむ。もしかしたら HTML 的にシンタックスエラーがあって崩れている部分があるのかもしれないけれど。
あと Windows 上で Python スクリプトを(そのまま、あるいは実行可能ファイル(exe)化して)動かすのがちょっと流行っているので、GHC インストールした。Haskell の。Windows 版の GHC は MinGW 使ってるのか。インストールは基本アーカイブを展開するだけ OK。
ちょっとした勉強会などの資料は Markdown とかで軽く書いて、Web ブラウザでプレゼンテーションするための HTML ファイルと、参照用のシンプルな HTML ファイルを生成したいなと思ってちょっとチェックしてみた。pandoc を使うと Markdown から reveal.js を使ったスライドページを作れるし、普通に HTML5 なページにも変換できるので良さそげ。
pandoc は Haskell で書かれている。 GHC + Haskell Platform が入っている環境なら
cabal update cabal install pandoc
を実行すればインストールできる(Fedora 17 の home 以下に GHC + Haskell Platform をインストールした時のメモ)。Debian GNU/Linux sid にも pandoc Debian パッケージはあるのだけれど、まだちょっと古めなので cabal で入れた。
mkdir pandoc-sample cd pandoc-sample emacs source.md
してサンプルを Markdown で書く。
できたら reveal.js をとってくる。
git clone https://github.com/hakimel/reveal.js.git
CSS の微調整が必要なら reveal.js/css/reveal.min.css に手を入れる(自分の場合 text-align: center を left にしたり、.reveal h<n> のサイズを小さくしたりする)。
~/.cabal/bin/pandoc -s -t revealjs -V theme:default -o slide.html source.md
でスライド HTML ファイルが生成される。
HTML のテンプレートを変更したい場合は、例えば
cp -a ~/.cabal/share/pandoc-1.12.2.1/data/templates/default.revealjs .
とコピーしてきて編集後、
~/.cabal/bin/pandoc -s -t revealjs -V theme:default --template=default.revealjs -o slide.html source.md
とする。
~/.cabal/bin/pandoc -s -t html5 --toc -c /path/to/bootstrap.min.css -o doc.html source.md
などとしてシンプルな HTML5 版も作っておける。
Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。
※本サイトの内容は個人的見解であり所属組織とは関係ありません。