人気ブログランキング | 話題のタグを見る

System.Win32 と Graphics.Win32

Windows 版の Haskell Platform には System.Win32 と Graphics.Win32 があり、Win32 なプログラミングができる道具が揃っているらしい。

Programming Windows in Haskell というプログの記事に基本プログラムが紹介されていた。コピペをして、ghci でコンパイル失敗を繰り返しながら、全角スペースの草取りをしていったら、Hello World と書いたウィンドウを開くことができた。閉じるボタンをクリックしたらきちんとプログラムが終了した。Windows プログラマであれば、Haskell Platform で Win32 のプログラムをばりばり書ける状況が既にあるのだなという気がした。

Prelude> :l test.hs
[1 of 1] Compiling Main ( test.hs, interpreted )
Ok, modules loaded: Main.
*Main> main
Loading package bytestring-0.9.2.1 ... linking ... done.
Loading package Win32-2.2.2.0 ... linking ... done.

Win32 プログラムをほとんどしたことがないので、管理人にはレベル高すぎだったが、Haskell Platform の可能性を感じさせる記事だった。

Linux な人には、Graphics.UI.Gtk がある。Ubuntu の場合 sudo cabal innstall gtk でなかなかインストールできないが、エラーメッセージを頼りに、必要なパッケージを synaptic や apt-get で補充していったら使えるようになった。将来 Haskell Platform に採用されればそういう苦労もなくなるだろう。

サンプルプログラムと ghci での実行例を次に示す。リンクされているパッケージがないと、cabal でインストールできない。

ファイル名: test.hs

import Graphics.UI.Gtk

main :: IO ()
main = do
  initGUI
  window <- windowNew
  set window [windowDefaultWidth := 200, windowDefaultHeight := 200]
  onDestroy window mainQuit
  widgetShowAll window
  mainGUI

実行例:
Prelude> :l test.hs
[1 of 1] Compiling Main ( test.hs, interpreted )
Ok, modules loaded: Main.
*Main> main
Loading package array-0.4.0.0 ... linking ... done.
Loading package bytestring-0.9.2.1 ... linking ... done.
Loading package deepseq-1.3.0.0 ... linking ... done.
Loading package containers-0.4.2.1 ... linking ... done.
Loading package glib-0.12.2 ... linking ... done.
Loading package transformers-0.2.2.0 ... linking ... done.
Loading package mtl-2.0.1.0 ... linking ... done.
Loading package gio-0.12.2 ... linking ... done.
Loading package cairo-0.12.2 ... linking ... done.
Loading package filepath-1.3.0.0 ... linking ... done.
Loading package old-locale-1.0.0.4 ... linking ... done.
Loading package old-time-1.1.0.0 ... linking ... done.
Loading package unix-2.5.1.0 ... linking ... done.
Loading package directory-1.1.0.2 ... linking ... done.
Loading package pretty-1.1.1.0 ... linking ... done.
Loading package process-1.1.0.1 ... linking ... done.
Loading package pango-0.12.2 ... linking ... done.
Loading package gtk-0.12.2 ... linking ... done.

なお、ubuntu には haskell-platform パッケージがあるのでそれをインストールすれば、いろいろなモジュールが一気にインストールできる。

これだけツールが整ってくると、Haskell がブレイクするのも間近なのではないかと思えてくる。
by tnomura9 | 2012-07-30 17:11 | Haskell | Comments(0)
<< cabal Haskell で OpenGL >>