Haskell Cabal

  • Haskellの色々なタイプやら関数やらをモジュールとして作り、さらにモジュールを合わせてパッケージにするらしい
  • そのパッケージを「みんなで登録」する場所がHackageらしい(こちら)
  • で、そのHackageがどういう状態なのか、チェックしつつ、パッケージインストールなどをしてくれるのが、cabal
  • 実はこのcabal、以前、pandocという画像フォーマット変換アプリをインストールするときに使った(こちら)
  • その例でわかるように『ハスケルで作られたアプリ』を、『ハスケルが動くローカル環境』に取ってくる道具、ともみなせる
  • この場合、pandocは、cabalでとってくると、インストールも終了していて、コマンドプロンプトに、アプリ起動コマンド
pandoc
  • と打つことで使える、とそういうもの
  • じゃあ、ハスケルのプログラミングをするのに、ハスケルパッケージをcabalでインストールするっていうのはどういう風になっているのか、というと
cabal install algebra
  • というように、algebraパッケージをcabalを使ってインストールするよ、とやるわけだが、そうすると、次のターミナル画面のように、インストールが終わって、cabal配下にインストールされていることが示される

  • このalgebraパッケージは「それ自体で動くアプリ」ではないので、ターミナル画面のように
algebra
  • と打っても(pandocのようには)動くわけではない
  • だけれども、インストールされた、と言われるディレクトリを覗きに行くと、
C:\Users\ryamada\AppData\Roaming\cabal
  • にわんさか、いろいろあって、その中にもalgebraがある

  • ちなみに、ハスケルを始めるときに入れたpreludeというのも入っていることは、探せばわかる
  • これをたどっていくと"algebra-4.1.tar.gz"が納まっていて、

  • この中身を見てみると"Setup.hs"もある。なので、自力でインストールする場合は、このtar.gzをとってきて、開梱して、
$ runhaskell Setup.hs configure
$ runhaskell Setup.hs build
$ runhaskell Setup.hs install
  • とかとやることになるわけだけれど、cabalがインストールをしてくれているから、ここでは不要
  • ちなみに、このtar.gzの中のsrcフォルダを掘って行って見つかる、"Algebra.hs"とかを読めば、ハスケルファイルだから、それを読み込んだ実行環境が立ち上がって

  • となってくれる
  • パッケージはモジュールの塊なので、モジュールをインポートするには
import Numeric.Algebra
  • とか、モジュールを指定することになる
  • というわけでインストールできた(ウィンドウズで…)。ただし、このパッケージは名前に惹かれて入れてみたけど、どういうつくりなのかのドキュメントとかは見つからない(見つけてない)ので、使うかどうかは別の話