Hugsは、Haskell 98規格の (いくつかのライブラリを除く) ほとんどすべてをサポートするほか、先進的、実験的な拡張機能を多数サポートしている。たとえば、複数パラメータ型クラス (Multi-Parameter Type Class)、拡張可能なレコード (Extensible Record)、ランク2多相性 (rank-2 polymorphism)、Existential、スコープ付きの型変数 (scoped type variables)、制限付きの同義名 (Restricted Type Synonym) などが含まれる。
Hugsの公式Webページは、
http://haskell.org/hugs
である。
このページにアクセスすると "Downloading" というリンクがあり、クリックするとダウンロードページに遷移する。ダウンロードページで、Hugsの適切なバージョンをコンピュータにダウンロードできる。
Hugsのダウンロード後のインストール手順はプラットフォームに依存するが、使用しているプラットフォームへのプログラムのインストールと大きな違いはない。
Windowsの場合 "msi" ファイルをクリックしてダウンロードした場合は、単に "Run This Program" を選択すれば自動的にインストールが開始する。その後は、画面に表示される手順に従うだけである。
RPMの場合 もっとも使い慣れているRPMインストールプログラムを使用してインストールする。
ソースの場合 まずgunzipした後、untarする。サポートされている他のシステムとは異なるシステムを使用しているのなら、おそらくそのシステムについてはよくご存じで、手作業でconfigureスクリプトを実行し、makeすることができるだろうと思う。
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が使用する環境変数とコマンドラインオプションは、次の節以降で示す。
すべてのオプションを列挙すると膨大なものとなる。現時点で最も重要なオプションは、"+98" および "-98" である。"+98" をつけてhugsを起動するとhugsはHaskell 98モードとなり、拡張機能はすべてオフとなる。"-98" で起動するとHugsモードとなり、すべての拡張機能がオンとなる。だれかのコードをダウンロードしてそのロードに失敗する場合には、まず "98" フラグが適切に設定されているか確認する。
Hugsオプションに関する詳しい情報は、マニュアルの
http://cvs.haskell.org/Hugs/pages/hugsman/started.html
に書かれている。
Hugsに関する詳しいヘルプは、HugsのWebページに行くと得られる。Haskellに関する一般的なヘルプは、HaskellのWebページに行くと得られる。
前ページ「2 スタートガイド」
次ページ「2.2 Glasgow Haskell Compiler」
1 はじめに
2 スタートガイド
4 型の基礎
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
などから入手できます。
日本語訳に関するご指摘は、コメントとしてお寄せください。
オリジナルのドキュメントは、
http://www.cs.utah.edu/~hal/docs/daume02yaht.pdf
などから入手できます。
日本語訳に関するご指摘は、コメントとしてお寄せください。
【Yet Another Haskell Tutorialの最新記事】

