The Haskell 98 Report
top | function
index
Haskell 98 レポート: 目次
1
イントロダクション
1.1
プログラムの構造
1.2 Haskell
のカーネル
1.3
値と型
1.4
名前空間
2
字句構造
2.1
表記規約
2.2
字句上のプログラム構造
2.3
コメント
2.4
識別子と演算子
2.5
数値リテラル
2.6
文字および文字列リテラル
2.7
レイアウト
3 式
3.1
エラー
3.2
変数、構成子、演算子、リテラル
3.3
カリー化された適用とラムダ抽象
3.4
演算子適用
3.5
セクション
3.6
条件式
3.7 リスト
3.8
タプル
3.9
ユニット式と括弧でくくられた式
3.10
数列
3.11
リスト内包表記
3.12
let 式
3.13
case 式
3.14
do 式
3.15
フィールドラベルをもつデータ型
3.15.1
フィールドの選択
3.15.2
フィールドラベルを用いた構築
3.15.3
フィールドラベルを用いた更新
3.16
式の型シグネチャ
3.17
パターン照合
3.17.1
パターン
3.17.2
パターン照合の非形式的セマンティクス
3.17.3
パターン照合の形式的セマンティクス
4
宣言と束縛
4.1
型およびクラスの概要
4.1.1 類
4.1.2
型の構文
4.1.3
クラス表明および文脈の構文
4.1.4
型およびクラスのセマンティクス
4.2
ユーザ定義のデータ型
4.2.1
代数的データ型宣言
4.2.2
型シノニム宣言
4.2.3
データ型名の付け替え
4.3
型クラスと多重定義
4.3.1
クラス宣言
4.3.2
インスタンス宣言
4.3.3
導出インスタンス
4.3.4
曖昧な型と多重定義された数値演算のデフォルト定義
4.4
入れ子になった宣言
4.4.1
型シグネチャ
4.4.2
結合性宣言
4.4.3
関数束縛とパターン束縛
4.4.3.1
関数束縛
4.4.3.2
パターン束縛
4.5
関数束縛およびパターン束縛の静的セマンティクス
4.5.1
依存性解析
4.5.2
一般化
4.5.3
文脈簡約エラー
4.5.4
単相性
4.5.5
単相性制限
4.6
類の推論
5 モジュール
5.1
モジュール構造
5.2
エクスポートリスト
5.3
インポート宣言
5.3.1
インポートされるもの
5.3.2
修飾子付インポート
5.3.3
局所的な別名
5.3.4 例
5.4
インスタンス宣言のインポートとエクスポート
5.5
名前の衝突とクロージャ
5.5.1
修飾された名前
5.5.2
名前の衝突
5.5.3 クロージャ
5.6
標準プレリュード
5.6.1
Prelude モジュール
5.6.2
プレリュード名の隠蔽
5.7
分割コンパイル
5.8
抽象データ型
6
定義ずみの型およびクラス
6.1
Haskell の標準型
6.1.1
真理値
6.1.2
文字と文字列
6.1.3
リスト
6.1.4
タプル
6.1.5
ユニットデータ型
6.1.6
関数の型
6.1.7
IO 型および IOError 型
6.1.8
その他の型
6.2
正格評価
6.3
Haskell の標準クラス
6.3.1
Eq クラス
6.3.2
Ord クラス
6.3.3
Read クラスと Show クラス
6.3.4
Enum クラス
6.3.5
Functor クラス
6.3.6
Monad クラス
6.3.7
Bounded クラス
6.4
数値
6.4.1
数値リテラル
6.4.2
算術的演算子と数論的演算子
6.4.3
指数と対数
6.4.4
絶対値と符号
6.4.5
三角関数
6.4.6
型変換および構成要素の取り出し
7
基本 I/O
7.1
標準 I/O 関数
7.2
I/O 操作の直列化
7.3
I/O モナドの例外処理
8
標準プレリュード
8.1
プレリュード PreludeList
8.2
プレリュード PreludeText
8.3
プレリュード PreludeIO
9
構文リファレンス
9.1
記法上の慣習
9.2
字句構文
9.3
レイアウト
9.4
文芸的コメント
9.5
文脈自由構文
9.6
文藝的コメント
10
導出インスタンスの特化
10.1
Eq および Ord の導出インスタンス
10.2
Enum の導出インスタンス
10.3
Bounded の導出インスタンス
10.4
Read および Show の導出インスタンス
10.5
例
11
コンパイラプラグマ
11.1
インライン展開
11.2
特化
12
有理数
12.1
Ratio ライブラリ
13
複素数
13.1
Complex ライブラリ
14 数値
14.1
表示関数
14.2
読み込み関数
14.3 その他
14.4
Numeric ライブラリ
15
インデックス演算
15.1
Ix インスタンスの導出
15.2
Ix ライブラリ
16 配列
16.1
配列の構築
16.1.1
蓄積配列
16.2
配列の漸進更新
16.3
導出配列
16.4
Array ライブラリ
17
リストユーティリティ
17.1
リストのインデックス付け
17.2
「集合」演算
17.3
リストの変換
17.4 unfoldr
17.5 述語
17.6
"By" 演算
17.7
"generic" 演算
17.8
追加の "zip" 演算
17.9
List ライブラリ
18 Maybe
ユーティリティ
18.1
Maybe ライブラリ
19
文字ユーティリティ
19.1
Char ライブラリ
20
モナドユーティリティ
20.1
命名上の慣習
20.2
MonadPlus クラス
20.3 関数
20.4
Monad ライブラリ
21 入出力
21.1 I/O エラー
21.2
ファイルとハンドル
21.2.1
標準ハンドル
21.2.2
ハンドルのセミクローズ
21.2.3
ファイルのロック
21.3
ファイルのオープンとクローズ
21.3.1
ファイルのオープン
21.3.2
ファイルのクローズ
21.4
ファイルサイズの決定
21.5
入力終端の検出
21.6
バッファリング操作
21.6.1
バッファのフラッシュ
21.7
ハンドルの再配置
21.7.1
I/O 位置の再訪
21.7.2
新しい位置へのシーク
21.8
ハンドルの性質
21.9
テキスト入出力
21.9.1
入力のためのチェック
21.9.2
入力の読み込み
21.9.3
先読
21.9.4
入力全体の読み込み
21.9.5
テキスト出力
21.10 例
21.10.1
二つの数の和
21.10.2
ファイルのコピー
21.11
IO ライブラリ
22
ディレクトリ関数
23
システム関数
24
日付と時刻
24.1
Time ライブラリ
25 ロケール
25.1
Locale ライブラリ
26 CPU 時刻
27
乱数
27.1
RandomGen クラスとStdGen 生成器
27.2
Random クラス
27.3
グローバル乱数生成器