人気ブログランキングへ

2009年02月22日

Yet Another Haskell Tutorial (和訳): 2.1 Hugs

2.1 Hugs

Hugsは、Haskell 98規格の (いくつかのライブラリを除く) ほとんどすべてをサポートするほか、先進的、実験的な拡張機能を多数サポートしている。たとえば、複数パラメータ型クラス (Multi-Parameter Type Class)、拡張可能なレコード (Extensible Record)、ランク2多相性 (rank-2 polymorphism)、Existential、スコープ付きの型変数 (scoped type variables)、制限付きの同義名 (Restricted Type Synonym) などが含まれる。

2.1.1 入手先

Hugsの公式Webページは、
http://haskell.org/hugs
である。

このページにアクセスすると "Downloading" というリンクがあり、クリックするとダウンロードページに遷移する。ダウンロードページで、Hugsの適切なバージョンをコンピュータにダウンロードできる。

2.1.2 インストール手順

Hugsのダウンロード後のインストール手順はプラットフォームに依存するが、使用しているプラットフォームへのプログラムのインストールと大きな違いはない。

Windowsの場合 "msi" ファイルをクリックしてダウンロードした場合は、単に "Run This Program" を選択すれば自動的にインストールが開始する。その後は、画面に表示される手順に従うだけである。

RPMの場合 もっとも使い慣れているRPMインストールプログラムを使用してインストールする。

ソースの場合 まずgunzipした後、untarする。サポートされている他のシステムとは異なるシステムを使用しているのなら、おそらくそのシステムについてはよくご存じで、手作業でconfigureスクリプトを実行し、makeすることができるだろうと思う。


2.1.3 実行方法

Unixマシンでは通常、hugs [option - file] ... という形式のコマンドラインでHugsインタープリタを起動する。
Windowsでは、スタートメニューから選択するか、拡張子.hsまたは.lhsのファイルをダブルクリックしてHugsを起動する。このマニュアルでは、すでにHugsがシステムに正常にインストールされていることを前提としている。
Hugsではオプションを使ってシステムのパラメータを設定する。このオプションは+または-ではじまるもので区別され、インタープリタの振る舞いのカスタマイズに使われる。Hugsが起動すると、インタープリタは以下の役割を果たす。

  • 環境内のオプションが処理される。このオプションは変数HUGSFLAGSに保持されている。Windows 95/NTでは、レジストリも参照してHugsオプションを設定する。
  • コマンドラインオプションが処理される。
  • 内部データ構造が初期化される。特に、ヒープが初期化され、ヒープサイズはこの時点で確定する。デフォルトのヒープサイズ以外でインタープリタを実行したい場合は、コマンドラインオプションを使うか、環境変数またはレジストリで指定する。
  • Preludeファイルがロードされる。インタープリタは-Pオプションで指定されたパスからPreludeファイルを探す。ファイルPrelude.hsに存在するpreludeが、パスディレクトリのどれか、またはカレントディレクトリに見つからなければ、Hugsは終了する。Preludeファイルが無いとHugsは実行しない。
  • コマンドラインで指定したプログラムファイルがロードされる。コマンドhugs f1 ... fnは、hugsコマンドを起動して :load f1 ... fnと入力したのと同じ効果をもたらす。なお、指定しファイルのどれかをロードしようとして問題が発生しても、インタープリタは終了せずロードコマンドを中止する。

Hugsが使用する環境変数とコマンドラインオプションは、次の節以降で示す。

2.1.4 プログラムオプション

すべてのオプションを列挙すると膨大なものとなる。現時点で最も重要なオプションは、"+98" および "-98" である。"+98" をつけてhugsを起動するとhugsはHaskell 98モードとなり、拡張機能はすべてオフとなる。"-98" で起動するとHugsモードとなり、すべての拡張機能がオンとなる。だれかのコードをダウンロードしてそのロードに失敗する場合には、まず "98" フラグが適切に設定されているか確認する。
Hugsオプションに関する詳しい情報は、マニュアルの
http://cvs.haskell.org/Hugs/pages/hugsman/started.html
に書かれている。


2.1.5 ヘルプの入手法

Hugsに関する詳しいヘルプは、HugsのWebページに行くと得られる。Haskellに関する一般的なヘルプは、HaskellのWebページに行くと得られる。

前ページ「2 スタートガイド
次ページ「2.2 Glasgow Haskell Compiler


5 Basic Input/Output
6 Modules
7 Advanced Features
8 Advanced Types
9 Monads
10 Advanced Techniques
A Brief Complexity Theory
B Recursion and Induction
C Solutions To Exercises


これは、Haskell (ハスケル) のチュートリアル "Yet Another Haskell Tutorial" を日本語に翻訳したものです。
オリジナルのドキュメントは、
http://www.cs.utah.edu/~hal/docs/daume02yaht.pdf
などから入手できます。
日本語訳に関するご指摘は、コメントとしてお寄せください。

posted by K/I at 01:17 | 東京 ☀ | Comment(0) | TrackBack(0) | Yet Another Haskell Tutorial | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。