bitterharvest’s diary

A Bitter Harvestは小説の題名。作者は豪州のPeter Yeldham。苦闘の末に勝ちえた偏見からの解放は命との引換になったという悲しい物語

Reactive-bananaの紹介(1)

1.Reactive-banana

今年(2015年)の10月29日に、1.0版のreactive-bananaが公開された。作成者は、Heinrich Apfelmusである。開発版から完成版への移行であると作者は謳っている。これからは、大きな変化もなさそうなので、紹介してもよいレベルに達したものと思われる。

reactive-bananaは、functional reactive programming(FRP)の一つのフレームワークである。これまでに、Yampa,NetwireなどのFRPを紹介してきたが、これらとは少し趣きを異にしている。

reactive-bananaは、イベントの扱いに特徴がある。イベントの処理の仕方には、push型(通知型)とpull型(問合せ型)があり、reactive-bananaはpush型である。

この記事では、最初にreactive-banana-wxで紹介されている例題を解説した後で、reactive-bananaの機能について説明したいと思う。

また、reactive-bananaとsodiumのHaskell版ではAPIが似ているということである。sodiumに関する本が2月に出版される予定なので、これに伴って、reactive-bananaに対する理解も深まることと思う。

2.reactive-banaba-wxのインストール

Reactive-bananaには、GUI(グラフィカル・ユーザ・インタフェース)をサポートしたreactive-banana-wxというライブラリが用意されている。このライブラリを利用すると、GUIを作成することが簡単になるので、これを利用することにする。

2.1 wxWidgetsのインストール

reactive-banana-wxをインストールするためには、wxWidgetsをあらかじめインストールする必要がある。Windows用にも用意されているが、ここでは、操作が簡単なubuntu(15.04)の方にインストールすることとする。wxWidgetsは、インストールするに先立って、キーを入手する必要がある。今回は次のようにして入手した。

CodeLiteの公開キーが必要なので、次のようにして得る。

sudo apt-key adv --fetch-keys http://repos.codelite.org/CodeLite.asc

レポジトリを更新する必要があるが、これは以下のように行う。

sudo apt-add-repository 'deb http://repos.codelite.org/wx3.0.2/ubuntu/ trusty universe'

キーの入手が終了したら、ライブラリをインストールする。これは次のように行う。

sudo apt-get update
sudo apt-get install libwxbase3.0-0-unofficial libwxbase3.0-dev libwxgtk3.0-0-unofficial libwxgtk3.0-dev wx-common \

2.2 reactive-banana-wxのインストール

reactive-banana-wxはcabal-macosxライブラリを使用している。また、cabalは1.22.3を用いてるので、これをインストールする。

cabal install Cabal-1.22.3.0 cabal-macosx

cabalは今インストールしたものと、従来からのものが同居している。後者を用いるとエラーになるので、前者のものを用いる。私の場合には、ホームページの直下に.cabalのディレクトリがあり、その直下のbinにあったので、次のようにした。また、-fbuildExamplesをつけると、付属の例題も一緒にインストールされる。

./cabal/bin/cabal install reactive-banana-wx -fbuildExamples

2.3 例題を動かしてみる

インストールが無事に済むと、例題が実行状態で用意されているので、これを動かしてみる。
私の場合には、.cabal/binの直下に例題が納められていた。そこで、Animationというプログラムを実行してみた。

./cabal/bin/Animation

reactive-bananaのロゴが出現し、カーソルに追随して動き回る単純なプログラムである。

補遺

Windows10にも、wxHaskellを簡単にインストールできることがわかったので紹介する。参考になったのは、この記事である。手順は次のようになっている。
(1) 古いwxHaskellがインストールされていれば、消しておく。
(2) このページより、wxInstall Abriline 64 bitをダウンロードし(32 bitもある)、解凍する。
(3) install.batをクリックし、インストールを行う。
(4) インストールの最後に、DLLsとgcc-dllのディレクトリの位置が示されるので、このディレクトリをpathに加える。
インストールできたかどうかは、

cabal install wxAsteroids

を実行し、wxAsteroidsを実行してみる。動けば完成である。