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   グローバル乱数生成器